diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md
index 444463e9ded..bf3b5bf2c0a 100644
--- a/.github/ISSUE_TEMPLATE/bug.md
+++ b/.github/ISSUE_TEMPLATE/bug.md
@@ -16,9 +16,9 @@ Commit hash:
Erigon Command (with flags/config):
-Concensus Layer:
+Consensus Layer:
-Concensus Layer Command (with flags/config):
+Consensus Layer Command (with flags/config):
Chain/Network:
diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml
index ec526d3f3fa..dd90ea72721 100644
--- a/.github/workflows/test-integration.yml
+++ b/.github/workflows/test-integration.yml
@@ -29,6 +29,11 @@ jobs:
- name: test-integration
run: make test-integration
+ - name: Test erigon as a library
+ env:
+ GIT_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }}
+ run: make test-erigon-ext GIT_COMMIT=$GIT_COMMIT
+
# name: history-v3-test-integration
# run: make test3-integration
diff --git a/Dockerfile b/Dockerfile
index 0d6c3dd96c9..77a7ddca25a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -78,7 +78,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry
COPY --from=builder /app/build/bin/state /usr/local/bin/state
COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool
COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle
-COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1
+COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin
COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression
diff --git a/Dockerfile.debian b/Dockerfile.debian
index 5d7d4e54968..e3e8c9d5d89 100644
--- a/Dockerfile.debian
+++ b/Dockerfile.debian
@@ -1,5 +1,5 @@
# syntax = docker/dockerfile:1.2
-FROM docker.io/library/golang:1.19-bullseye AS builder
+FROM docker.io/library/golang:1.20-bullseye AS builder
RUN apt update
RUN apt install -y build-essential git bash ca-certificates libstdc++6
@@ -17,7 +17,7 @@ RUN --mount=type=cache,target=/root/.cache \
make all
-FROM docker.io/library/golang:1.19-alpine3.16 AS tools-builder
+FROM docker.io/library/golang:1.20-alpine3.17 AS tools-builder
RUN apk --no-cache add build-base linux-headers git bash ca-certificates libstdc++
WORKDIR /app
@@ -74,7 +74,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry
COPY --from=builder /app/build/bin/state /usr/local/bin/state
COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool
COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle
-COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1
+COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin
COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression
EXPOSE 8545 \
diff --git a/Makefile b/Makefile
index e3249efbb34..c7f1cab165d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-GO = go # if using docker, should not need to be installed/linked
+GO ?= go # if using docker, should not need to be installed/linked
GOBIN = $(CURDIR)/build/bin
UNAME = $(shell uname) # Supported: Darwin, Linux
DOCKER := $(shell command -v docker 2> /dev/null)
@@ -24,8 +24,7 @@ CGO_CFLAGS += -DMDBX_FORCE_ASSERTIONS=0 # Enable MDBX's asserts by default in 'd
#CGO_CFLAGS += -DMDBX_ENV_CHECKPID=0 # Erigon doesn't do fork() syscall
CGO_CFLAGS += -O
CGO_CFLAGS += -D__BLST_PORTABLE__
-CGO_CFLAGS += -Wno-unknown-warning-option -Wno-enum-int-mismatch -Wno-strict-prototypes
-#CGO_CFLAGS += -Wno-error=strict-prototypes # for Clang15, remove it when can https://github.com/ledgerwatch/erigon/issues/6113#issuecomment-1359526277
+CGO_CFLAGS += -Wno-unknown-warning-option -Wno-enum-int-mismatch -Wno-strict-prototypes -Wno-unused-but-set-variable
# about netgo see: https://github.com/golang/go/issues/30310#issuecomment-471669125 and https://github.com/golang/go/issues/57757
BUILD_TAGS = nosqlite,noboltdb
@@ -42,8 +41,8 @@ default: all
## go-version: print and verify go version
go-version:
- @if [ $(shell $(GO) version | cut -c 16-17) -lt 19 ]; then \
- echo "minimum required Golang version is 1.19"; \
+ @if [ $(shell $(GO) version | cut -c 16-17) -lt 20 ]; then \
+ echo "minimum required Golang version is 1.20"; \
exit 1 ;\
fi
@@ -106,6 +105,7 @@ erigon: go-version erigon.cmd
@rm -f $(GOBIN)/tg # Remove old binary to prevent confusion where users still use it because of the scripts
COMMANDS += devnet
+COMMANDS += capcli
COMMANDS += downloader
COMMANDS += hack
COMMANDS += integration
@@ -119,7 +119,7 @@ COMMANDS += txpool
COMMANDS += verkle
COMMANDS += evm
COMMANDS += sentinel
-COMMANDS += caplin-phase1
+COMMANDS += caplin
COMMANDS += caplin-regression
@@ -140,22 +140,24 @@ db-tools:
rm -rf vendor
@echo "Run \"$(GOBIN)/mdbx_stat -h\" to get info about mdbx db file."
-## test: run unit tests with a 100s timeout
-test:
+test-erigon-lib:
@cd erigon-lib && $(MAKE) test
+
+test-erigon-ext:
+ @cd tests/erigon-ext-test && ./test.sh $(GIT_COMMIT)
+
+## test: run unit tests with a 100s timeout
+test: test-erigon-lib
$(GOTEST) --timeout 10m
-test3:
- @cd erigon-lib && $(MAKE) test
+test3: test-erigon-lib
$(GOTEST) --timeout 10m -tags $(BUILD_TAGS),e3
## test-integration: run integration tests with a 30m timeout
-test-integration:
- @cd erigon-lib && $(MAKE) test
+test-integration: test-erigon-lib
$(GOTEST) --timeout 240m -tags $(BUILD_TAGS),integration
-test3-integration:
- @cd erigon-lib && $(MAKE) test
+test3-integration: test-erigon-lib
$(GOTEST) --timeout 240m -tags $(BUILD_TAGS),integration,e3
## lint-deps: install lint dependencies
diff --git a/README.md b/README.md
index ab6b6221a21..5f6dafdce77 100644
--- a/README.md
+++ b/README.md
@@ -55,16 +55,17 @@ System Requirements
* Goerli Full node (see `--prune*` flags): 189GB on Beta, 114GB on Alpha (April 2022).
-* Gnosis Chain Archive: 370GB (January 2023).
+* Gnosis Chain Archive: 600GB (October 2023).
-* Polygon Mainnet Archive: 5TB. (April 2022). `--prune.*.older 15768000`: 5.1Tb (Sept 2023). Polygon Mumbai Archive: 1TB. (April 2022).
+* Polygon Mainnet Archive: 5TB. (April 2022). `--prune.*.older 15768000`: 5.1Tb (Sept 2023). Polygon Mumbai Archive:
+ 1TB. (April 2022).
SSD or NVMe. Do not recommend HDD - on HDD Erigon will always stay N blocks behind chain tip, but not fall behind.
Bear in mind that SSD performance deteriorates when close to capacity.
RAM: >=16GB, 64-bit architecture.
-[Golang version >= 1.19](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4
+[Golang version >= 1.20](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4
🔬 more details on disk storage [here](https://erigon.substack.com/p/disk-footprint-changes-in-new-erigon?s=r)
and [here](https://ledgerwatch.github.io/turbo_geth_release.html#Disk-space).
@@ -111,7 +112,8 @@ Running `make help` will list and describe the convenience commands available in
### Datadir structure
- chaindata: recent blocks, state, recent state history. low-latency disk recommended.
-- snapshots: old blocks, old state history. can symlink/mount it to cheaper disk. mostly immutable. must have ~100gb free space (for merge recent files to bigger one).
+- snapshots: old blocks, old state history. can symlink/mount it to cheaper disk. mostly immutable. must have ~100gb
+ free space (for merge recent files to bigger one).
- temp: can grow to ~100gb, but usually empty. can symlink/mount it to cheaper disk.
- txpool: pending transactions. safe to remove.
- nodes: p2p peers. safe to remove.
@@ -141,7 +143,9 @@ int value specifying the highest output log level:
LvlTrace = 5
```
-To set an output dir for logs to be collected on disk, please set `--log.dir.path` If you want to change the filename prodiced from `erigon` you should also set the `--log.dir.prefix` flag to an alternate name. The flag `--log.dir.verbosity` is
+To set an output dir for logs to be collected on disk, please set `--log.dir.path` If you want to change the filename
+produced from `erigon` you should also set the `--log.dir.prefix` flag to an alternate name. The
+flag `--log.dir.verbosity` is
also available to control the verbosity of this logging, with the same int value as above, or the string value e.g. '
debug' or 'info'. Default verbosity is 'debug' (4), for disk logging.
@@ -210,7 +214,7 @@ Windows users may run erigon in 3 possible ways:
build on windows :
* [Git](https://git-scm.com/downloads) for Windows must be installed. If you're cloning this repository is very
likely you already have it
- * [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.19
+ * [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.20
* GNU CC Compiler at least version 10 (is highly suggested that you install `chocolatey` package manager - see
following point)
* If you need to build MDBX tools (i.e. `.\wmake.ps1 db-tools`)
@@ -530,13 +534,10 @@ Detailed explanation: [./docs/programmers_guide/db_faq.md](./docs/programmers_gu
### Default Ports and Firewalls
-
-
#### `erigon` ports
-
| Component | Port | Protocol | Purpose | Should Expose |
-| --------- | ----- | --------- | --------------------------- | ------------- |
+|-----------|-------|-----------|-----------------------------|---------------|
| engine | 9090 | TCP | gRPC Server | Private |
| engine | 42069 | TCP & UDP | Snap sync (Bittorrent) | Public |
| engine | 8551 | TCP | Engine API (JWT auth) | Private |
@@ -545,42 +546,31 @@ Detailed explanation: [./docs/programmers_guide/db_faq.md](./docs/programmers_gu
| sentry | 9091 | TCP | incoming gRPC Connections | Private |
| rpcdaemon | 8545 | TCP | HTTP & WebSockets & GraphQL | Private |
-
-
-
Typically, 30303 and 30304 are exposed to the internet to allow incoming peering connections. 9090 is exposed only
internally for rpcdaemon or other connections, (e.g. rpcdaemon -> erigon).
Port 8551 (JWT authenticated) is exposed only internally for [Engine API] JSON-RPC queries from the Consensus Layer
node.
-
-
-
-
#### `caplin` ports
+
| Component | Port | Protocol | Purpose | Should Expose |
-| --------- | ---- | -------- | ---------------- | ------------- |
+|-----------|------|----------|------------------|---------------|
| sentinel | 4000 | UDP | Peering | Public |
| sentinel | 4001 | TCP | Peering | Public |
-| sentinel | 7777 | TCP | gRPC Connections | Private |
-
If you are using `--internalcl` aka `caplin` as your consensus client, then also look at the chart above
-
#### `shared` ports
-| Component | Port | Protocol | Purpose | Should Expose |
-| --------- | ----- | --------- | --------------------------- | ------------- |
-| all | 6060 | TCP | pprof | Private |
-| all | 6060 | TCP | metrics | Private |
-
+| Component | Port | Protocol | Purpose | Should Expose |
+|-----------|------|----------|---------|---------------|
+| all | 6060 | TCP | pprof | Private |
+| all | 6060 | TCP | metrics | Private |
Optional flags can be enabled that enable pprof or metrics (or both) - however, they both run on 6060 by default, so
you'll have to change one if you want to run both at the same time. use `--help` with the binary for more info.
-
#### `other` ports
Reserved for future use: **gRPC ports**: `9092` consensus engine, `9093` snapshot downloader, `9094` TxPool
@@ -608,15 +598,16 @@ Device Benchmark Testing RFC 2544
RFC 922, Section 7
```
-Same in [IpTables syntax](https://ethereum.stackexchange.com/questions/6386/how-to-prevent-being-blacklisted-for-running-an-ethereum-client/13068#13068)
+Same
+in [IpTables syntax](https://ethereum.stackexchange.com/questions/6386/how-to-prevent-being-blacklisted-for-running-an-ethereum-client/13068#13068)
### How to get diagnostic for bug report?
- Get stack trace: `kill -SIGUSR1 `, get trace and stop: `kill -6 `
- Get CPU profiling: add `--pprof flag`
- run `go tool pprof -png http://127.0.0.1:6060/debug/pprof/profile\?seconds\=20 > cpu.png`
+ run `go tool pprof -png http://127.0.0.1:6060/debug/pprof/profile\?seconds\=20 > cpu.png`
- Get RAM profiling: add `--pprof flag`
- run `go tool pprof -inuse_space -png http://127.0.0.1:6060/debug/pprof/heap > mem.png`
+ run `go tool pprof -inuse_space -png http://127.0.0.1:6060/debug/pprof/heap > mem.png`
### How to run local devnet?
@@ -630,6 +621,13 @@ UID/GID (1000).
More details
in [post](https://www.fullstaq.com/knowledge-hub/blogs/docker-and-the-host-filesystem-owner-matching-problem)
+### How to run public RPC api
+
+- `--txpool.nolocals=true`
+- don't add `admin` in `--http.api` list
+- to increase throughput may need
+ increase/decrease: `--db.read.concurrency`, `--rpc.batch.concurrency`, `--rpc.batch.limit`
+
### Run RaspberyPI
https://github.com/mathMakesArt/Erigon-on-RPi-4
@@ -644,7 +642,8 @@ Getting in touch
### Erigon Discord Server
-The main discussions are happening on our Discord server. To get an invite, send an email to `bloxster [at] proton.me` with
+The main discussions are happening on our Discord server. To get an invite, send an email to `bloxster [at] proton.me`
+with
your name, occupation, a brief explanation of why you want to join the Discord, and how you heard about Erigon.
### Reporting security issues/concerns
@@ -671,20 +670,22 @@ Next tools show correct memory usage of Erigon:
- `vmmap -summary PID | grep -i "Physical footprint"`. Without `grep` you can see details
- `section MALLOC ZONE column Resident Size` shows App memory usage, `section REGION TYPE column Resident Size`
- shows OS pages cache size.
+ shows OS pages cache size.
- `Prometheus` dashboard shows memory of Go app without OS pages cache (`make prometheus`, open in
- browser `localhost:3000`, credentials `admin/admin`)
+ browser `localhost:3000`, credentials `admin/admin`)
- `cat /proc//smaps`
- Erigon uses ~4Gb of RAM during genesis sync and ~1Gb during normal work. OS pages cache can utilize unlimited amount of
- memory.
-
- **Warning:** Multiple instances of Erigon on same machine will touch Disk concurrently, it impacts performance - one of
- main Erigon optimisations: "reduce Disk random access".
- "Blocks Execution stage" still does many random reads - this is reason why it's slowest stage. We do not recommend
- running
- multiple genesis syncs on same Disk. If genesis sync passed, then it's fine to run multiple Erigon instances on same
- Disk.
+ Erigon uses ~4Gb of RAM during genesis sync and ~1Gb during normal work. OS pages cache can utilize unlimited amount
+ of
+ memory.
+
+ **Warning:** Multiple instances of Erigon on same machine will touch Disk concurrently, it impacts performance - one
+ of
+ main Erigon optimisations: "reduce Disk random access".
+ "Blocks Execution stage" still does many random reads - this is reason why it's slowest stage. We do not recommend
+ running
+ multiple genesis syncs on same Disk. If genesis sync passed, then it's fine to run multiple Erigon instances on same
+ Disk.
### Blocks Execution is slow on cloud-network-drives
diff --git a/accounts/abi/abi_test.go b/accounts/abi/abi_test.go
index 56414a88050..2ca829d7759 100644
--- a/accounts/abi/abi_test.go
+++ b/accounts/abi/abi_test.go
@@ -1137,7 +1137,7 @@ func TestUnpackRevert(t *testing.T) {
}
for index, c := range cases {
t.Run(fmt.Sprintf("case %d", index), func(t *testing.T) {
- got, err := UnpackRevert(common.Hex2Bytes(c.input))
+ got, err := UnpackRevert(libcommon.Hex2Bytes(c.input))
if c.expectErr != nil {
if err == nil {
t.Fatalf("Expected non-nil error")
diff --git a/accounts/abi/bind/backends/simulated_test.go b/accounts/abi/bind/backends/simulated_test.go
index 0d33ca281b9..0f14ad4703a 100644
--- a/accounts/abi/bind/backends/simulated_test.go
+++ b/accounts/abi/bind/backends/simulated_test.go
@@ -467,7 +467,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) {
Gas: 0,
GasPrice: u256.Num0,
Value: nil,
- Data: common.Hex2Bytes("d8b98391"),
+ Data: libcommon.Hex2Bytes("d8b98391"),
}, 0, errors.New("execution reverted: revert reason"), "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000d72657665727420726561736f6e00000000000000000000000000000000000000"},
{"PureRevert", ethereum.CallMsg{
@@ -476,7 +476,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) {
Gas: 0,
GasPrice: u256.Num0,
Value: nil,
- Data: common.Hex2Bytes("aa8b1d30"),
+ Data: libcommon.Hex2Bytes("aa8b1d30"),
}, 0, errors.New("execution reverted"), nil},
{"OOG", ethereum.CallMsg{
@@ -485,7 +485,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) {
Gas: 100000,
GasPrice: u256.Num0,
Value: nil,
- Data: common.Hex2Bytes("50f6fe34"),
+ Data: libcommon.Hex2Bytes("50f6fe34"),
}, 0, errors.New("gas required exceeds allowance (100000)"), nil},
{"Assert", ethereum.CallMsg{
@@ -494,7 +494,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) {
Gas: 100000,
GasPrice: u256.Num0,
Value: nil,
- Data: common.Hex2Bytes("b9b046f9"),
+ Data: libcommon.Hex2Bytes("b9b046f9"),
}, 0, errors.New("invalid opcode: INVALID"), nil},
{"Valid", ethereum.CallMsg{
@@ -503,7 +503,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) {
Gas: 100000,
GasPrice: u256.Num0,
Value: nil,
- Data: common.Hex2Bytes("e09fface"),
+ Data: libcommon.Hex2Bytes("e09fface"),
}, 21275, nil, nil},
}
for _, c := range cases {
diff --git a/accounts/abi/bind/base_test.go b/accounts/abi/bind/base_test.go
index ca2d4e19e31..e16c4ad0485 100644
--- a/accounts/abi/bind/base_test.go
+++ b/accounts/abi/bind/base_test.go
@@ -18,6 +18,7 @@ package bind_test
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"reflect"
"strings"
@@ -28,7 +29,6 @@ import (
ethereum "github.com/ledgerwatch/erigon"
"github.com/ledgerwatch/erigon/accounts/abi"
"github.com/ledgerwatch/erigon/accounts/abi/bind"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/accounts/abi/pack_test.go b/accounts/abi/pack_test.go
index 0c745016f9e..49f576137c4 100644
--- a/accounts/abi/pack_test.go
+++ b/accounts/abi/pack_test.go
@@ -185,25 +185,25 @@ func TestPackNumber(t *testing.T) {
packed []byte
}{
// Protocol limits
- {reflect.ValueOf(0), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")},
- {reflect.ValueOf(1), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")},
- {reflect.ValueOf(-1), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")},
+ {reflect.ValueOf(0), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")},
+ {reflect.ValueOf(1), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")},
+ {reflect.ValueOf(-1), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")},
// Type corner cases
- {reflect.ValueOf(uint8(math.MaxUint8)), common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000ff")},
- {reflect.ValueOf(uint16(math.MaxUint16)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000ffff")},
- {reflect.ValueOf(uint32(math.MaxUint32)), common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000ffffffff")},
- {reflect.ValueOf(uint64(math.MaxUint64)), common.Hex2Bytes("000000000000000000000000000000000000000000000000ffffffffffffffff")},
-
- {reflect.ValueOf(int8(math.MaxInt8)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000007f")},
- {reflect.ValueOf(int16(math.MaxInt16)), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000007fff")},
- {reflect.ValueOf(int32(math.MaxInt32)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000007fffffff")},
- {reflect.ValueOf(int64(math.MaxInt64)), common.Hex2Bytes("0000000000000000000000000000000000000000000000007fffffffffffffff")},
-
- {reflect.ValueOf(int8(math.MinInt8)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80")},
- {reflect.ValueOf(int16(math.MinInt16)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000")},
- {reflect.ValueOf(int32(math.MinInt32)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000")},
- {reflect.ValueOf(int64(math.MinInt64)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000")},
+ {reflect.ValueOf(uint8(math.MaxUint8)), libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000ff")},
+ {reflect.ValueOf(uint16(math.MaxUint16)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000ffff")},
+ {reflect.ValueOf(uint32(math.MaxUint32)), libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000ffffffff")},
+ {reflect.ValueOf(uint64(math.MaxUint64)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000ffffffffffffffff")},
+
+ {reflect.ValueOf(int8(math.MaxInt8)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000007f")},
+ {reflect.ValueOf(int16(math.MaxInt16)), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000007fff")},
+ {reflect.ValueOf(int32(math.MaxInt32)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000007fffffff")},
+ {reflect.ValueOf(int64(math.MaxInt64)), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000007fffffffffffffff")},
+
+ {reflect.ValueOf(int8(math.MinInt8)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80")},
+ {reflect.ValueOf(int16(math.MinInt16)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000")},
+ {reflect.ValueOf(int32(math.MinInt32)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000")},
+ {reflect.ValueOf(int64(math.MinInt64)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000")},
}
for i, tt := range tests {
packed := packNum(tt.value)
diff --git a/accounts/abi/packing_test.go b/accounts/abi/packing_test.go
index d960223f897..4248596079f 100644
--- a/accounts/abi/packing_test.go
+++ b/accounts/abi/packing_test.go
@@ -20,8 +20,6 @@ import (
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
-
- "github.com/ledgerwatch/erigon/common"
)
type packUnpackTest struct {
@@ -378,7 +376,7 @@ var packUnpackTests = []packUnpackTest{
packed: "0000000000000000000000000000000000000000000000000000000000000020" +
"0000000000000000000000000000000000000000000000000000000000000020" +
"0100000000000000000000000000000000000000000000000000000000000000",
- unpacked: common.Hex2Bytes("0100000000000000000000000000000000000000000000000000000000000000"),
+ unpacked: libcommon.Hex2Bytes("0100000000000000000000000000000000000000000000000000000000000000"),
},
{
def: `[{"type": "bytes32"}]`,
diff --git a/accounts/abi/unpack_test.go b/accounts/abi/unpack_test.go
index 880fb589335..083f329b75e 100644
--- a/accounts/abi/unpack_test.go
+++ b/accounts/abi/unpack_test.go
@@ -258,8 +258,8 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) {
}
var (
- marshalledReturn32 = common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783132333435363738393000000000000000000000000000000000000000003078303938373635343332310000000000000000000000000000000000000000")
- marshalledReturn15 = common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783031323334350000000000000000000000000000000000000000000000003078393837363534000000000000000000000000000000000000000000000000")
+ marshalledReturn32 = libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783132333435363738393000000000000000000000000000000000000000003078303938373635343332310000000000000000000000000000000000000000")
+ marshalledReturn15 = libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783031323334350000000000000000000000000000000000000000000000003078393837363534000000000000000000000000000000000000000000000000")
out32 [][32]byte
out15 [][15]byte
@@ -273,11 +273,11 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) {
if len(out32) != 2 {
t.Fatalf("expected array with 2 values, got %d", len(out32))
}
- expected := common.Hex2Bytes("3078313233343536373839300000000000000000000000000000000000000000")
+ expected := libcommon.Hex2Bytes("3078313233343536373839300000000000000000000000000000000000000000")
if !bytes.Equal(out32[0][:], expected) {
t.Errorf("expected %x, got %x\n", expected, out32[0])
}
- expected = common.Hex2Bytes("3078303938373635343332310000000000000000000000000000000000000000")
+ expected = libcommon.Hex2Bytes("3078303938373635343332310000000000000000000000000000000000000000")
if !bytes.Equal(out32[1][:], expected) {
t.Errorf("expected %x, got %x\n", expected, out32[1])
}
@@ -290,11 +290,11 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) {
if len(out15) != 2 {
t.Fatalf("expected array with 2 values, got %d", len(out15))
}
- expected = common.Hex2Bytes("307830313233343500000000000000")
+ expected = libcommon.Hex2Bytes("307830313233343500000000000000")
if !bytes.Equal(out15[0][:], expected) {
t.Errorf("expected %x, got %x\n", expected, out15[0])
}
- expected = common.Hex2Bytes("307839383736353400000000000000")
+ expected = libcommon.Hex2Bytes("307839383736353400000000000000")
if !bytes.Equal(out15[1][:], expected) {
t.Errorf("expected %x, got %x\n", expected, out15[1])
}
@@ -314,9 +314,9 @@ func methodMultiReturn(require *require.Assertions) (ABI, []byte, methodMultiOut
require.NoError(err)
// using buff to make the code readable
buff := new(bytes.Buffer)
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005"))
buff.Write(common.RightPadBytes([]byte(expected.String), 32))
return abi, buff.Bytes(), expected
}
@@ -402,8 +402,8 @@ func TestMultiReturnWithArray(t *testing.T) {
t.Fatal(err)
}
buff := new(bytes.Buffer)
- buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008"))
+ buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008"))
ret1, ret1Exp := new([3]uint64), [3]uint64{9, 9, 9}
ret2, ret2Exp := new(uint64), uint64(8)
@@ -425,7 +425,7 @@ func TestMultiReturnWithStringArray(t *testing.T) {
t.Fatal(err)
}
buff := new(bytes.Buffer)
- buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000005c1b78ea0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000001a055690d9db80000000000000000000000000000ab1257528b3782fb40d7ed5f72e624b744dffb2f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000008457468657265756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001048656c6c6f2c20457468657265756d2100000000000000000000000000000000"))
+ buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000005c1b78ea0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000001a055690d9db80000000000000000000000000000ab1257528b3782fb40d7ed5f72e624b744dffb2f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000008457468657265756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001048656c6c6f2c20457468657265756d2100000000000000000000000000000000"))
temp, _ := big.NewInt(0).SetString("30000000000000000000", 10)
ret1, ret1Exp := new([3]*big.Int), [3]*big.Int{big.NewInt(1545304298), big.NewInt(6), temp}
ret2, ret2Exp := new(libcommon.Address), libcommon.HexToAddress("ab1257528b3782fb40d7ed5f72e624b744dffb2f")
@@ -455,18 +455,18 @@ func TestMultiReturnWithStringSlice(t *testing.T) {
t.Fatal(err)
}
buff := new(bytes.Buffer)
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0] offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000120")) // output[1] offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[0] length
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0][0] offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // output[0][1] offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) // output[0][0] length
- buff.Write(common.Hex2Bytes("657468657265756d000000000000000000000000000000000000000000000000")) // output[0][0] value
- buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000b")) // output[0][1] length
- buff.Write(common.Hex2Bytes("676f2d657468657265756d000000000000000000000000000000000000000000")) // output[0][1] value
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[1] length
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000064")) // output[1][0] value
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000065")) // output[1][1] value
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0] offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000120")) // output[1] offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[0] length
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0][0] offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // output[0][1] offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) // output[0][0] length
+ buff.Write(libcommon.Hex2Bytes("657468657265756d000000000000000000000000000000000000000000000000")) // output[0][0] value
+ buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000b")) // output[0][1] length
+ buff.Write(libcommon.Hex2Bytes("676f2d657468657265756d000000000000000000000000000000000000000000")) // output[0][1] value
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[1] length
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000064")) // output[1][0] value
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000065")) // output[1][1] value
ret1, ret1Exp := new([]string), []string{"ethereum", "go-ethereum"}
ret2, ret2Exp := new([]*big.Int), []*big.Int{big.NewInt(100), big.NewInt(101)}
if err := abi.UnpackIntoInterface(&[]interface{}{ret1, ret2}, "multi", buff.Bytes()); err != nil {
@@ -493,14 +493,14 @@ func TestMultiReturnWithDeeplyNestedArray(t *testing.T) {
buff := new(bytes.Buffer)
// construct the test array, each 3 char element is joined with 61 '0' chars,
// to from the ((3 + 61) * 0.5) = 32 byte elements in the array.
- buff.Write(common.Hex2Bytes(strings.Join([]string{
+ buff.Write(libcommon.Hex2Bytes(strings.Join([]string{
"", //empty, to apply the 61-char separator to the first element as well.
"111", "112", "113", "121", "122", "123",
"211", "212", "213", "221", "222", "223",
"311", "312", "313", "321", "322", "323",
"411", "412", "413", "421", "422", "423",
}, "0000000000000000000000000000000000000000000000000000000000000")))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000009876"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000009876"))
ret1, ret1Exp := new([4][2][3]uint64), [4][2][3]uint64{
{{0x111, 0x112, 0x113}, {0x121, 0x122, 0x123}},
@@ -539,14 +539,14 @@ func TestUnmarshal(t *testing.T) {
buff := new(bytes.Buffer)
// marshall mixed bytes (mixedBytes)
- p0, p0Exp := []byte{}, common.Hex2Bytes("01020000000000000000")
- p1, p1Exp := [32]byte{}, common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff")
+ p0, p0Exp := []byte{}, libcommon.Hex2Bytes("01020000000000000000")
+ p1, p1Exp := [32]byte{}, libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff")
mixedBytes := []interface{}{&p0, &p1}
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff"))
- buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000a"))
- buff.Write(common.Hex2Bytes("0102000000000000000000000000000000000000000000000000000000000000"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff"))
+ buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000a"))
+ buff.Write(libcommon.Hex2Bytes("0102000000000000000000000000000000000000000000000000000000000000"))
err = abi.UnpackIntoInterface(&mixedBytes, "mixedBytes", buff.Bytes())
if err != nil {
@@ -563,7 +563,7 @@ func TestUnmarshal(t *testing.T) {
// marshal int
var Int *big.Int
- err = abi.UnpackIntoInterface(&Int, "int", common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
+ err = abi.UnpackIntoInterface(&Int, "int", libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
if err != nil {
t.Error(err)
}
@@ -574,7 +574,7 @@ func TestUnmarshal(t *testing.T) {
// marshal bool
var Bool bool
- err = abi.UnpackIntoInterface(&Bool, "bool", common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
+ err = abi.UnpackIntoInterface(&Bool, "bool", libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
if err != nil {
t.Error(err)
}
@@ -585,8 +585,8 @@ func TestUnmarshal(t *testing.T) {
// marshal dynamic bytes max length 32
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
bytesOut := common.RightPadBytes([]byte("hello"), 32)
buff.Write(bytesOut)
@@ -602,8 +602,8 @@ func TestUnmarshal(t *testing.T) {
// marshall dynamic bytes max length 64
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040"))
bytesOut = common.RightPadBytes([]byte("hello"), 64)
buff.Write(bytesOut)
@@ -618,8 +618,8 @@ func TestUnmarshal(t *testing.T) {
// marshall dynamic bytes max length 64
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
- buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000003f"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
+ buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000003f"))
bytesOut = common.RightPadBytes([]byte("hello"), 64)
buff.Write(bytesOut)
@@ -640,8 +640,8 @@ func TestUnmarshal(t *testing.T) {
// marshal dynamic bytes length 5
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005"))
buff.Write(common.RightPadBytes([]byte("hello"), 32))
err = abi.UnpackIntoInterface(&Bytes, "bytes", buff.Bytes())
@@ -670,7 +670,7 @@ func TestUnmarshal(t *testing.T) {
// marshal error
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020"))
err = abi.UnpackIntoInterface(&Bytes, "bytes", buff.Bytes())
if err == nil {
t.Error("expected error")
@@ -682,9 +682,9 @@ func TestUnmarshal(t *testing.T) {
}
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000003"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000003"))
// marshal int array
var intArray [3]*big.Int
err = abi.UnpackIntoInterface(&intArray, "intArraySingle", buff.Bytes())
@@ -703,9 +703,9 @@ func TestUnmarshal(t *testing.T) {
}
// marshal address slice
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) // offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size
- buff.Write(common.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) // offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000"))
var outAddr []libcommon.Address
err = abi.UnpackIntoInterface(&outAddr, "addressSliceSingle", buff.Bytes())
@@ -723,13 +723,13 @@ func TestUnmarshal(t *testing.T) {
// marshal multiple address slice
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size
- buff.Write(common.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // size
- buff.Write(common.Hex2Bytes("0000000000000000000000000200000000000000000000000000000000000000"))
- buff.Write(common.Hex2Bytes("0000000000000000000000000300000000000000000000000000000000000000"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // size
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000200000000000000000000000000000000000000"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000300000000000000000000000000000000000000"))
var outAddrStruct struct {
A []libcommon.Address
@@ -761,7 +761,7 @@ func TestUnmarshal(t *testing.T) {
// marshal invalid address slice
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000100"))
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000100"))
err = abi.UnpackIntoInterface(&outAddr, "addressSliceSingle", buff.Bytes())
if err == nil {
@@ -777,8 +777,8 @@ func TestUnpackTuple(t *testing.T) {
}
buff := new(bytes.Buffer)
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // ret[a] = 1
- buff.Write(common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")) // ret[b] = -1
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // ret[a] = 1
+ buff.Write(libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")) // ret[b] = -1
// If the result is single tuple, use struct as return value container directly.
v := struct {
@@ -810,21 +810,21 @@ func TestUnpackTuple(t *testing.T) {
t.Fatal(err)
}
buff.Reset()
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // s offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")) // t.X = 0
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // t.Y = 1
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // a = 1
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.A = 1
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000060")) // s.B offset
- buff.Write(common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000c0")) // s.C offset
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B length
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.B[0] = 1
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B[0] = 2
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C length
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[0].X
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[0].Y
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[1].X
- buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[1].Y
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // s offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")) // t.X = 0
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // t.Y = 1
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // a = 1
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.A = 1
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000060")) // s.B offset
+ buff.Write(libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000c0")) // s.C offset
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B length
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.B[0] = 1
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B[0] = 2
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C length
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[0].X
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[0].Y
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[1].X
+ buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[1].Y
type T struct {
X *big.Int `abi:"x"`
diff --git a/cl/abstract/beacon_state.go b/cl/abstract/beacon_state.go
index da949eed384..c22994dfbef 100644
--- a/cl/abstract/beacon_state.go
+++ b/cl/abstract/beacon_state.go
@@ -43,6 +43,24 @@ type BeaconStateExtension interface {
}
type BeaconStateBasic interface {
+ BeaconStateMinimal
+ BeaconStateExtra
+ BeaconStateMutator
+ BeaconStateSSZ
+
+ Clone() clonable.Clonable
+ DebugPrint(prefix string)
+}
+
+type BeaconStateSSZ interface {
+ BlockRoot() ([32]byte, error)
+ EncodeSSZ(buf []byte) ([]byte, error)
+ DecodeSSZ(buf []byte, version int) error
+ EncodingSizeSSZ() (size int)
+ HashSSZ() (out [32]byte, err error)
+}
+
+type BeaconStateMutator interface {
SetVersion(version clparams.StateVersion)
SetSlot(slot uint64)
SetFork(fork *cltypes.Fork)
@@ -56,8 +74,6 @@ type BeaconStateBasic interface {
SetActivationEpochForValidatorAtIndex(index int, epoch uint64)
SetActivationEligibilityEpochForValidatorAtIndex(index int, epoch uint64)
SetEth1Data(eth1Data *cltypes.Eth1Data)
- AddEth1DataVote(vote *cltypes.Eth1Data)
- ResetEth1DataVotes()
SetEth1DepositIndex(eth1DepositIndex uint64)
SetValidatorSlashed(index int, slashed bool) error
SetValidatorMinCurrentInclusionDelayAttestation(index int, value *solid.PendingAttestation) error
@@ -69,13 +85,11 @@ type BeaconStateBasic interface {
SetValidatorIsPreviousMatchingTargetAttester(index int, value bool) error
SetValidatorIsPreviousMatchingHeadAttester(index int, value bool) error
SetValidatorBalance(index int, balance uint64) error
- AddValidator(validator solid.Validator, balance uint64)
SetRandaoMixAt(index int, mix common.Hash)
SetSlashingSegmentAt(index int, segment uint64)
- IncrementSlashingSegmentAt(index int, delta uint64)
SetEpochParticipationForValidatorIndex(isCurrentEpoch bool, index int, flags cltypes.ParticipationFlags)
SetValidatorAtIndex(index int, validator solid.Validator)
- ResetEpochParticipation()
+
SetJustificationBits(justificationBits cltypes.JustificationBits)
SetPreviousJustifiedCheckpoint(previousJustifiedCheckpoint solid.Checkpoint)
SetCurrentJustifiedCheckpoint(currentJustifiedCheckpoint solid.Checkpoint)
@@ -85,41 +99,39 @@ type BeaconStateBasic interface {
SetLatestExecutionPayloadHeader(header *cltypes.Eth1Header)
SetNextWithdrawalIndex(index uint64)
SetNextWithdrawalValidatorIndex(index uint64)
- ResetHistoricalSummaries()
- AddHistoricalSummary(summary *cltypes.HistoricalSummary)
- AddHistoricalRoot(root common.Hash)
SetInactivityScores(scores []uint64)
- AddInactivityScore(score uint64)
SetValidatorInactivityScore(index int, score uint64) error
SetCurrentEpochParticipationFlags(flags []cltypes.ParticipationFlags)
SetPreviousEpochParticipationFlags(flags []cltypes.ParticipationFlags)
+ SetPreviousEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation])
+
+ AddEth1DataVote(vote *cltypes.Eth1Data)
+ AddValidator(validator solid.Validator, balance uint64)
+ AddHistoricalSummary(summary *cltypes.HistoricalSummary)
+ AddHistoricalRoot(root common.Hash)
+ AddInactivityScore(score uint64)
AddCurrentEpochParticipationFlags(flags cltypes.ParticipationFlags)
AddPreviousEpochParticipationFlags(flags cltypes.ParticipationFlags)
AddPreviousEpochParticipationAt(index int, delta byte)
AddCurrentEpochAtteastation(attestation *solid.PendingAttestation)
AddPreviousEpochAttestation(attestation *solid.PendingAttestation)
+
+ IncrementSlashingSegmentAt(index int, delta uint64)
+
+ AppendValidator(in solid.Validator)
+
+ ResetEth1DataVotes()
+ ResetEpochParticipation()
+ ResetHistoricalSummaries()
ResetCurrentEpochAttestations()
- SetPreviousEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation])
ResetPreviousEpochAttestations()
- BeaconConfig() *clparams.BeaconChainConfig
- Version() clparams.StateVersion
- GenesisTime() uint64
- GenesisValidatorsRoot() common.Hash
- Slot() uint64
- PreviousSlot() uint64
- Fork() *cltypes.Fork
- LatestBlockHeader() cltypes.BeaconBlockHeader
- BlockRoots() solid.HashVectorSSZ
- StateRoots() solid.HashVectorSSZ
- Eth1Data() *cltypes.Eth1Data
- Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1Data]
- Eth1DepositIndex() uint64
+}
+
+type BeaconStateExtra interface {
ValidatorLength() int
- AppendValidator(in solid.Validator)
- ForEachValidator(fn func(v solid.Validator, idx int, total int) bool)
- ValidatorForValidatorIndex(index int) (solid.Validator, error)
- ForEachBalance(fn func(v uint64, idx int, total int) bool)
ValidatorBalance(index int) (uint64, error)
+ RandaoMixes() solid.HashVectorSSZ
+ ForEachBalance(fn func(v uint64, idx int, total int) bool)
ValidatorExitEpoch(index int) (uint64, error)
ValidatorWithdrawableEpoch(index int) (uint64, error)
ValidatorEffectiveBalance(index int) (uint64, error)
@@ -131,36 +143,52 @@ type BeaconStateBasic interface {
ValidatorIsPreviousMatchingSourceAttester(idx int) (bool, error)
ValidatorIsPreviousMatchingTargetAttester(idx int) (bool, error)
ValidatorIsPreviousMatchingHeadAttester(idx int) (bool, error)
- RandaoMixes() solid.HashVectorSSZ
GetRandaoMixes(epoch uint64) [32]byte
GetRandaoMix(index int) [32]byte
+ EpochParticipationForValidatorIndex(isCurrentEpoch bool, index int) cltypes.ParticipationFlags
+ GetBlockRootAtSlot(slot uint64) (common.Hash, error)
+ GetDomain(domainType [4]byte, epoch uint64) ([]byte, error)
+}
+
+type BeaconStateMinimal interface {
+ BeaconConfig() *clparams.BeaconChainConfig
+ Version() clparams.StateVersion
+ GenesisTime() uint64
+ GenesisValidatorsRoot() common.Hash
+ Slot() uint64
+ PreviousSlot() uint64
+ Fork() *cltypes.Fork
+ LatestBlockHeader() cltypes.BeaconBlockHeader
+ BlockRoots() solid.HashVectorSSZ
+ StateRoots() solid.HashVectorSSZ
+ Eth1Data() *cltypes.Eth1Data
+ Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1Data]
+ Eth1DepositIndex() uint64
+
+ ForEachValidator(fn func(v solid.Validator, idx int, total int) bool)
+ ValidatorForValidatorIndex(index int) (solid.Validator, error)
+
ForEachSlashingSegment(fn func(idx int, v uint64, total int) bool)
SlashingSegmentAt(pos int) uint64
+
EpochParticipation(currentEpoch bool) *solid.BitList
JustificationBits() cltypes.JustificationBits
- EpochParticipationForValidatorIndex(isCurrentEpoch bool, index int) cltypes.ParticipationFlags
+
PreviousJustifiedCheckpoint() solid.Checkpoint
CurrentJustifiedCheckpoint() solid.Checkpoint
- ValidatorInactivityScore(index int) (uint64, error)
FinalizedCheckpoint() solid.Checkpoint
+ ValidatorInactivityScore(index int) (uint64, error)
CurrentSyncCommittee() *solid.SyncCommittee
NextSyncCommittee() *solid.SyncCommittee
LatestExecutionPayloadHeader() *cltypes.Eth1Header
NextWithdrawalIndex() uint64
+ NextWithdrawalValidatorIndex() uint64
+ // HistoricalSummary has no accessor yet.
+
CurrentEpochAttestations() *solid.ListSSZ[*solid.PendingAttestation]
CurrentEpochAttestationsLength() int
PreviousEpochAttestations() *solid.ListSSZ[*solid.PendingAttestation]
PreviousEpochAttestationsLength() int
- NextWithdrawalValidatorIndex() uint64
- GetBlockRootAtSlot(slot uint64) (common.Hash, error)
- GetDomain(domainType [4]byte, epoch uint64) ([]byte, error)
- DebugPrint(prefix string)
- BlockRoot() ([32]byte, error)
- EncodeSSZ(buf []byte) ([]byte, error)
- DecodeSSZ(buf []byte, version int) error
- EncodingSizeSSZ() (size int)
- Clone() clonable.Clonable
- HashSSZ() (out [32]byte, err error)
}
// TODO figure this out
diff --git a/cl/antiquary/antiquary.go b/cl/antiquary/antiquary.go
index ebc95201817..e2fd98f9c0c 100644
--- a/cl/antiquary/antiquary.go
+++ b/cl/antiquary/antiquary.go
@@ -2,8 +2,8 @@ package antiquary
import (
"context"
- "database/sql"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/persistence"
)
@@ -26,17 +26,17 @@ func NewDownloader(
}
}
-func (d *Downloader) DownloadEpoch(tx *sql.Tx, ctx context.Context, epoch uint64) error {
+func (d *Downloader) DownloadEpoch(tx kv.RwTx, ctx context.Context, epoch uint64) error {
// convert the epoch to a block
startBlock := epoch * d.config.SlotsPerEpoch
- blocks, err := d.source.GetRange(tx, ctx, startBlock, d.config.SlotsPerEpoch)
+ blocks, err := d.source.GetRange(ctx, tx, startBlock, d.config.SlotsPerEpoch)
if err != nil {
return err
}
// NOTE: the downloader does not perform any real verification on these blocks
// validation must be done separately
- for _, v := range blocks {
- err := d.beacondDB.WriteBlock(tx, ctx, v.Data, true)
+ for _, v := range blocks.Data {
+ err := d.beacondDB.WriteBlock(ctx, tx, v, true)
if err != nil {
return err
}
diff --git a/cl/beacon/handler/blocks.go b/cl/beacon/handler/blocks.go
index 806baf66e00..46d5577ec12 100644
--- a/cl/beacon/handler/blocks.go
+++ b/cl/beacon/handler/blocks.go
@@ -2,16 +2,16 @@ package handler
import (
"context"
- "database/sql"
"fmt"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy"
"io"
"net/http"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy"
)
type headerResponse struct {
@@ -25,7 +25,7 @@ type getHeadersRequest struct {
ParentRoot *libcommon.Hash `json:"root,omitempty"`
}
-func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) {
+func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx kv.Tx, blockId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) {
switch {
case blockId.head():
root, _, err = a.forkchoiceStore.GetHead()
@@ -37,7 +37,7 @@ func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *s
case blockId.justified():
root = a.forkchoiceStore.JustifiedCheckpoint().BlockRoot()
case blockId.genesis():
- root, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, 0)
+ root, err = beacon_indicies.ReadCanonicalBlockRoot(tx, 0)
if err != nil {
return libcommon.Hash{}, http.StatusInternalServerError, err
}
@@ -45,7 +45,7 @@ func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *s
return libcommon.Hash{}, http.StatusNotFound, fmt.Errorf("genesis block not found")
}
case blockId.getSlot() != nil:
- root, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, *blockId.getSlot())
+ root, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *blockId.getSlot())
if err != nil {
return libcommon.Hash{}, http.StatusInternalServerError, err
}
@@ -63,7 +63,7 @@ func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx *sql.Tx, blockId *s
func (a *ApiHandler) getBlock(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) {
var (
- tx *sql.Tx
+ tx kv.Tx
blockId *segmentID
root libcommon.Hash
blkHeader *cltypes.SignedBeaconBlockHeader
@@ -73,7 +73,7 @@ func (a *ApiHandler) getBlock(r *http.Request) (data any, finalized *bool, versi
ctx := r.Context()
- tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ tx, err = a.indiciesDB.BeginRo(ctx)
if err != nil {
httpStatus = http.StatusInternalServerError
return
@@ -119,7 +119,7 @@ func (a *ApiHandler) getBlock(r *http.Request) (data any, finalized *bool, versi
func (a *ApiHandler) getBlockAttestations(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) {
var (
- tx *sql.Tx
+ tx kv.Tx
blockId *segmentID
root libcommon.Hash
blkHeader *cltypes.SignedBeaconBlockHeader
@@ -129,7 +129,7 @@ func (a *ApiHandler) getBlockAttestations(r *http.Request) (data any, finalized
ctx := r.Context()
- tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ tx, err = a.indiciesDB.BeginRo(ctx)
if err != nil {
httpStatus = http.StatusInternalServerError
return
@@ -176,7 +176,7 @@ func (a *ApiHandler) getBlockAttestations(r *http.Request) (data any, finalized
func (a *ApiHandler) getBlockRoot(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) {
var (
- tx *sql.Tx
+ tx kv.Tx
blockId *segmentID
root libcommon.Hash
blockSlot uint64
@@ -185,7 +185,7 @@ func (a *ApiHandler) getBlockRoot(r *http.Request) (data any, finalized *bool, v
ctx := r.Context()
- tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ tx, err = a.indiciesDB.BeginRo(ctx)
if err != nil {
httpStatus = http.StatusInternalServerError
return
@@ -204,7 +204,7 @@ func (a *ApiHandler) getBlockRoot(r *http.Request) (data any, finalized *bool, v
// check if the root exist
var blk *cltypes.SignedBeaconBlockHeader
- blk, isCanonical, err = beacon_indicies.ReadSignedHeaderByBlockRoot(ctx, a.indiciesDB, root)
+ blk, isCanonical, err = beacon_indicies.ReadSignedHeaderByBlockRoot(ctx, tx, root)
if err != nil {
httpStatus = http.StatusInternalServerError
return
diff --git a/cl/beacon/handler/handler.go b/cl/beacon/handler/handler.go
index b0ac6d72c94..7b9ec299270 100644
--- a/cl/beacon/handler/handler.go
+++ b/cl/beacon/handler/handler.go
@@ -1,11 +1,11 @@
package handler
import (
- "database/sql"
"net/http"
"sync"
"github.com/go-chi/chi/v5"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/persistence"
"github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
@@ -17,14 +17,14 @@ type ApiHandler struct {
mux chi.Router
blockSource persistence.RawBeaconBlockChain
- indiciesDB *sql.DB
+ indiciesDB kv.RoDB
genesisCfg *clparams.GenesisConfig
beaconChainCfg *clparams.BeaconChainConfig
forkchoiceStore forkchoice.ForkChoiceStorage
operationsPool pool.OperationsPool
}
-func NewApiHandler(genesisConfig *clparams.GenesisConfig, beaconChainConfig *clparams.BeaconChainConfig, source persistence.RawBeaconBlockChain, indiciesDB *sql.DB, forkchoiceStore forkchoice.ForkChoiceStorage, operationsPool pool.OperationsPool) *ApiHandler {
+func NewApiHandler(genesisConfig *clparams.GenesisConfig, beaconChainConfig *clparams.BeaconChainConfig, source persistence.RawBeaconBlockChain, indiciesDB kv.RoDB, forkchoiceStore forkchoice.ForkChoiceStorage, operationsPool pool.OperationsPool) *ApiHandler {
return &ApiHandler{o: sync.Once{}, genesisCfg: genesisConfig, beaconChainCfg: beaconChainConfig, indiciesDB: indiciesDB, blockSource: source, forkchoiceStore: forkchoiceStore, operationsPool: operationsPool}
}
diff --git a/cl/beacon/handler/headers.go b/cl/beacon/handler/headers.go
index 8c6f5ca32cc..8fe94d8bb11 100644
--- a/cl/beacon/handler/headers.go
+++ b/cl/beacon/handler/headers.go
@@ -1,7 +1,6 @@
package handler
import (
- "database/sql"
"encoding/json"
"errors"
"fmt"
@@ -9,6 +8,7 @@ import (
"net/http"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies"
@@ -30,8 +30,8 @@ func (a *ApiHandler) getHeaders(r *http.Request) (data any, finalized *bool, ver
httpStatus = http.StatusBadRequest
return
}
- var tx *sql.Tx
- tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ var tx kv.Tx
+ tx, err = a.indiciesDB.BeginRo(ctx)
if err != nil {
httpStatus = http.StatusInternalServerError
return
@@ -54,8 +54,6 @@ func (a *ApiHandler) getHeaders(r *http.Request) (data any, finalized *bool, ver
headersList, canonicals, err = beacon_indicies.ReadSignedHeadersBySlot(ctx, tx, *req.Slot)
} else if req.ParentRoot != nil {
headersList, canonicals, err = beacon_indicies.ReadSignedHeadersByParentRoot(ctx, tx, *req.ParentRoot)
- } else {
- headersList, canonicals, err = beacon_indicies.ReadSignedHeadersByParentRootAndSlot(ctx, tx, *req.ParentRoot, *req.Slot)
}
if err != nil {
httpStatus = http.StatusInternalServerError
@@ -88,7 +86,7 @@ func (a *ApiHandler) getHeaders(r *http.Request) (data any, finalized *bool, ver
func (a *ApiHandler) getHeader(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) {
ctx := r.Context()
- tx, err2 := a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ tx, err2 := a.indiciesDB.BeginRo(ctx)
if err2 != nil {
httpStatus = http.StatusInternalServerError
err = err2
diff --git a/cl/beacon/handler/states.go b/cl/beacon/handler/states.go
index 2d45c6a0c2f..c8b201956b4 100644
--- a/cl/beacon/handler/states.go
+++ b/cl/beacon/handler/states.go
@@ -2,18 +2,18 @@ package handler
import (
"context"
- "database/sql"
"fmt"
"net/http"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies"
"github.com/ledgerwatch/erigon/cl/utils"
)
-func (a *ApiHandler) rootFromStateId(ctx context.Context, tx *sql.Tx, stateId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) {
+func (a *ApiHandler) rootFromStateId(ctx context.Context, tx kv.Tx, stateId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) {
var blockRoot libcommon.Hash
switch {
case stateId.head():
@@ -26,7 +26,7 @@ func (a *ApiHandler) rootFromStateId(ctx context.Context, tx *sql.Tx, stateId *s
case stateId.justified():
blockRoot = a.forkchoiceStore.JustifiedCheckpoint().BlockRoot()
case stateId.genesis():
- blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, 0)
+ blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, 0)
if err != nil {
return libcommon.Hash{}, http.StatusInternalServerError, err
}
@@ -34,7 +34,7 @@ func (a *ApiHandler) rootFromStateId(ctx context.Context, tx *sql.Tx, stateId *s
return libcommon.Hash{}, http.StatusNotFound, fmt.Errorf("genesis block not found")
}
case stateId.getSlot() != nil:
- blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, *stateId.getSlot())
+ blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *stateId.getSlot())
if err != nil {
return libcommon.Hash{}, http.StatusInternalServerError, err
}
@@ -70,7 +70,7 @@ func previousVersion(v clparams.StateVersion) clparams.StateVersion {
func (a *ApiHandler) getStateFork(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) {
var (
- tx *sql.Tx
+ tx kv.Tx
blockId *segmentID
root libcommon.Hash
blkHeader *cltypes.SignedBeaconBlockHeader
@@ -78,7 +78,7 @@ func (a *ApiHandler) getStateFork(r *http.Request) (data any, finalized *bool, v
ctx := r.Context()
- tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ tx, err = a.indiciesDB.BeginRo(ctx)
if err != nil {
httpStatus = http.StatusInternalServerError
return
@@ -123,7 +123,7 @@ func (a *ApiHandler) getStateFork(r *http.Request) (data any, finalized *bool, v
func (a *ApiHandler) getStateRoot(r *http.Request) (data any, finalized *bool, version *clparams.StateVersion, httpStatus int, err error) {
var (
- tx *sql.Tx
+ tx kv.Tx
blockId *segmentID
root libcommon.Hash
blkHeader *cltypes.SignedBeaconBlockHeader
@@ -132,7 +132,7 @@ func (a *ApiHandler) getStateRoot(r *http.Request) (data any, finalized *bool, v
ctx := r.Context()
- tx, err = a.indiciesDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ tx, err = a.indiciesDB.BeginRo(ctx)
if err != nil {
httpStatus = http.StatusInternalServerError
return
diff --git a/cl/beacon/middleware.go b/cl/beacon/middleware.go
index be2a1bcafd7..b9f66a4ab33 100644
--- a/cl/beacon/middleware.go
+++ b/cl/beacon/middleware.go
@@ -1,7 +1,6 @@
package beacon
import (
- "fmt"
"net/http"
)
@@ -9,7 +8,6 @@ func newBeaconMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
contentType := r.Header.Get("Content-Type")
if contentType != "application/json" && contentType != "" {
- fmt.Println(contentType)
http.Error(w, "Content-Type header must be application/json", http.StatusUnsupportedMediaType)
return
}
diff --git a/cl/clparams/config.go b/cl/clparams/config.go
index 56c347d6ce9..93ea330f81f 100644
--- a/cl/clparams/config.go
+++ b/cl/clparams/config.go
@@ -21,12 +21,12 @@ import (
"os"
"time"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/types/ssz"
"gopkg.in/yaml.v2"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/params/networkname"
)
type NetworkType int
diff --git a/cl/cltypes/beacon_block.go b/cl/cltypes/beacon_block.go
index cf871d72d01..8125342241c 100644
--- a/cl/cltypes/beacon_block.go
+++ b/cl/cltypes/beacon_block.go
@@ -72,12 +72,31 @@ func NewSignedBeaconBlock(beaconCfg *clparams.BeaconChainConfig) *SignedBeaconBl
return &SignedBeaconBlock{Block: NewBeaconBlock(beaconCfg)}
}
+func (s *SignedBeaconBlock) SignedBeaconBlockHeader() *SignedBeaconBlockHeader {
+ bodyRoot, err := s.Block.Body.HashSSZ()
+ if err != nil {
+ panic(err)
+ }
+ return &SignedBeaconBlockHeader{
+ Signature: s.Signature,
+ Header: &BeaconBlockHeader{
+ Slot: s.Block.Slot,
+ ProposerIndex: s.Block.ProposerIndex,
+ ParentRoot: s.Block.ParentRoot,
+ Root: s.Block.StateRoot,
+ BodyRoot: bodyRoot,
+ },
+ }
+}
+
func NewBeaconBlock(beaconCfg *clparams.BeaconChainConfig) *BeaconBlock {
return &BeaconBlock{Body: NewBeaconBody(beaconCfg)}
}
func NewBeaconBody(beaconCfg *clparams.BeaconChainConfig) *BeaconBody {
- return &BeaconBody{beaconCfg: beaconCfg}
+ return &BeaconBody{
+ beaconCfg: beaconCfg,
+ }
}
// Version returns beacon block version.
@@ -155,6 +174,8 @@ func (b *BeaconBody) DecodeSSZ(buf []byte, version int) error {
return fmt.Errorf("[BeaconBody] err: %s", ssz.ErrLowBufferSize)
}
+ b.ExecutionPayload = NewEth1Block(b.Version, b.beaconCfg)
+
err := ssz2.UnmarshalSSZ(buf, version, b.getSchema(false)...)
return err
}
diff --git a/cl/cltypes/bls_to_execution_test.go b/cl/cltypes/bls_to_execution_test.go
index c5065e85e8f..2aca0a33956 100644
--- a/cl/cltypes/bls_to_execution_test.go
+++ b/cl/cltypes/bls_to_execution_test.go
@@ -1,11 +1,11 @@
package cltypes_test
import (
+ "github.com/ledgerwatch/erigon-lib/common"
"testing"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/common"
"github.com/stretchr/testify/require"
)
diff --git a/cl/cltypes/eth1_data.go b/cl/cltypes/eth1_data.go
index 92b45be76cb..716105dee89 100644
--- a/cl/cltypes/eth1_data.go
+++ b/cl/cltypes/eth1_data.go
@@ -6,7 +6,6 @@ import (
"github.com/ledgerwatch/erigon/cl/merkle_tree"
ssz2 "github.com/ledgerwatch/erigon/cl/ssz"
- "github.com/ledgerwatch/erigon/common"
)
type Eth1Data struct {
@@ -36,7 +35,7 @@ func (e *Eth1Data) DecodeSSZ(buf []byte, _ int) error {
// EncodingSizeSSZ returns the ssz encoded size in bytes for the Eth1Data object
func (e *Eth1Data) EncodingSizeSSZ() int {
- return common.BlockNumberLength + length.Hash*2
+ return 8 + length.Hash*2
}
// HashSSZ ssz hashes the Eth1Data object
diff --git a/cl/cltypes/eth1_data_test.go b/cl/cltypes/eth1_data_test.go
index 9d363e9fb0e..9a15b92f3e6 100644
--- a/cl/cltypes/eth1_data_test.go
+++ b/cl/cltypes/eth1_data_test.go
@@ -8,7 +8,6 @@ import (
"github.com/stretchr/testify/require"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/common"
)
var testEth1Data = &cltypes.Eth1Data{
@@ -17,8 +16,8 @@ var testEth1Data = &cltypes.Eth1Data{
DepositCount: 69,
}
-var expectedTestEth1DataMarshalled = common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000245000000000000000000000000000000000000000000000000000000000000000000000000000003")
-var expectedTestEth1DataRoot = common.Hex2Bytes("adbafa10f1d6046b59cb720371c5e70ce2c6c3067b0e87985f5cd0899a515886")
+var expectedTestEth1DataMarshalled = libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000245000000000000000000000000000000000000000000000000000000000000000000000000000003")
+var expectedTestEth1DataRoot = libcommon.Hex2Bytes("adbafa10f1d6046b59cb720371c5e70ce2c6c3067b0e87985f5cd0899a515886")
func TestEth1DataMarshalUnmarmashal(t *testing.T) {
marshalled, _ := testEth1Data.EncodeSSZ(nil)
diff --git a/cl/cltypes/historical_summary_test.go b/cl/cltypes/historical_summary_test.go
index f99b5bd9132..89a716c11a2 100644
--- a/cl/cltypes/historical_summary_test.go
+++ b/cl/cltypes/historical_summary_test.go
@@ -1,11 +1,11 @@
package cltypes_test
import (
+ "github.com/ledgerwatch/erigon-lib/common"
"testing"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/common"
"github.com/stretchr/testify/require"
)
diff --git a/cl/cltypes/network.go b/cl/cltypes/network.go
index 45f51acfaee..af8d1a3ee26 100644
--- a/cl/cltypes/network.go
+++ b/cl/cltypes/network.go
@@ -5,7 +5,6 @@ import (
"github.com/ledgerwatch/erigon-lib/types/ssz"
ssz2 "github.com/ledgerwatch/erigon/cl/ssz"
- "github.com/ledgerwatch/erigon/common"
)
type Metadata struct {
@@ -22,7 +21,7 @@ func (m *Metadata) EncodeSSZ(buf []byte) ([]byte, error) {
}
func (m *Metadata) EncodingSizeSSZ() (ret int) {
- ret = common.BlockNumberLength * 2
+ ret = 8 * 2
if m.Syncnets != nil {
ret += 8
}
@@ -50,7 +49,7 @@ func (p *Ping) EncodeSSZ(buf []byte) ([]byte, error) {
}
func (p *Ping) EncodingSizeSSZ() int {
- return common.BlockNumberLength
+ return 8
}
func (p *Ping) DecodeSSZ(buf []byte, _ int) error {
@@ -76,7 +75,7 @@ func (b *BeaconBlocksByRangeRequest) DecodeSSZ(buf []byte, v int) error {
}
func (b *BeaconBlocksByRangeRequest) EncodingSizeSSZ() int {
- return 3 * common.BlockNumberLength
+ return 3 * 8
}
func (*BeaconBlocksByRangeRequest) Clone() clonable.Clonable {
diff --git a/cl/cltypes/solid/attestation.go b/cl/cltypes/solid/attestation.go
index 64e99a8632b..68e9e131e39 100644
--- a/cl/cltypes/solid/attestation.go
+++ b/cl/cltypes/solid/attestation.go
@@ -9,7 +9,6 @@ import (
"github.com/ledgerwatch/erigon-lib/types/clonable"
"github.com/ledgerwatch/erigon-lib/types/ssz"
"github.com/ledgerwatch/erigon/cl/merkle_tree"
- "github.com/ledgerwatch/erigon/common"
)
const (
@@ -121,7 +120,7 @@ func (a *Attestation) DecodeSSZ(buf []byte, _ int) error {
return ssz.ErrLowBufferSize
}
copy(a.staticBuffer[:], buf)
- a.aggregationBitsBuffer = common.CopyBytes(buf[aggregationBitsOffset:])
+ a.aggregationBitsBuffer = libcommon.CopyBytes(buf[aggregationBitsOffset:])
return nil
}
diff --git a/cl/cltypes/solid/bitlist.go b/cl/cltypes/solid/bitlist.go
index f93a47ef786..41eb9b1b3a4 100644
--- a/cl/cltypes/solid/bitlist.go
+++ b/cl/cltypes/solid/bitlist.go
@@ -1,12 +1,12 @@
package solid
import (
+ "github.com/ledgerwatch/erigon-lib/common"
"math/bits"
"github.com/ledgerwatch/erigon-lib/types/clonable"
"github.com/ledgerwatch/erigon/cl/merkle_tree"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/common"
)
// BitList is like a dynamic binary string. It's like a flipbook of 1s and 0s!
diff --git a/cl/cltypes/solid/checkpoint_test.go b/cl/cltypes/solid/checkpoint_test.go
index de41bd3e9f9..e6598028e4a 100644
--- a/cl/cltypes/solid/checkpoint_test.go
+++ b/cl/cltypes/solid/checkpoint_test.go
@@ -8,13 +8,12 @@ import (
"github.com/stretchr/testify/require"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
- "github.com/ledgerwatch/erigon/common"
)
var testCheckpoint = solid.NewCheckpointFromParameters(libcommon.HexToHash("0x3"), 69)
-var expectedTestCheckpointMarshalled = common.Hex2Bytes("45000000000000000000000000000000000000000000000000000000000000000000000000000003")
-var expectedTestCheckpointRoot = common.Hex2Bytes("be8567f9fdae831b10720823dbcf0e3680e61d6a2a27d85ca00f6c15a7bbb1ea")
+var expectedTestCheckpointMarshalled = libcommon.Hex2Bytes("45000000000000000000000000000000000000000000000000000000000000000000000000000003")
+var expectedTestCheckpointRoot = libcommon.Hex2Bytes("be8567f9fdae831b10720823dbcf0e3680e61d6a2a27d85ca00f6c15a7bbb1ea")
func TestCheckpointMarshalUnmarmashal(t *testing.T) {
marshalled, err := testCheckpoint.EncodeSSZ(nil)
diff --git a/cl/cltypes/solid/pending_attestation.go b/cl/cltypes/solid/pending_attestation.go
index 214aa6e3781..4363babf727 100644
--- a/cl/cltypes/solid/pending_attestation.go
+++ b/cl/cltypes/solid/pending_attestation.go
@@ -2,11 +2,11 @@ package solid
import (
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/types/clonable"
"github.com/ledgerwatch/erigon-lib/types/ssz"
"github.com/ledgerwatch/erigon/cl/merkle_tree"
- "github.com/ledgerwatch/erigon/common"
)
const (
diff --git a/cl/fork/fork.go b/cl/fork/fork.go
index bd262032276..676122a4372 100644
--- a/cl/fork/fork.go
+++ b/cl/fork/fork.go
@@ -130,7 +130,6 @@ func ComputeNextForkDigest(
// Retrieve next fork version.
nextForkIndex := 0
forkList := forkList(beaconConfig.ForkVersionSchedule)
- fmt.Println(forkList, beaconConfig.ForkVersionSchedule)
for _, fork := range forkList {
if currentEpoch >= fork.epoch {
nextForkIndex++
@@ -143,7 +142,6 @@ func ComputeNextForkDigest(
return [4]byte{}, nil
}
nextForkIndex++
- fmt.Println(forkList[nextForkIndex].version)
return ComputeForkDigestForVersion(forkList[nextForkIndex].version, genesisConfig.GenesisValidatorRoot)
}
diff --git a/cl/freezer/utils.go b/cl/freezer/utils.go
index 4d2cb25ca8b..d7b2052186e 100644
--- a/cl/freezer/utils.go
+++ b/cl/freezer/utils.go
@@ -3,9 +3,9 @@ package freezer
import (
"bytes"
"fmt"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy"
"github.com/ledgerwatch/erigon-lib/types/ssz"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy"
)
type marshalerHashable interface {
diff --git a/cl/persistence/base_encoding/primitives.go b/cl/persistence/base_encoding/primitives.go
new file mode 100644
index 00000000000..3e266e8beb3
--- /dev/null
+++ b/cl/persistence/base_encoding/primitives.go
@@ -0,0 +1,37 @@
+package base_encoding
+
+import (
+ "math/bits"
+
+ libcommon "github.com/ledgerwatch/erigon-lib/common"
+)
+
+// Encode64 takes x, the uint to encode, and buf, the buffer to write to.
+func Encode64(x uint64) (out []byte) {
+ l := libcommon.BitLenToByteLen(bits.Len64(x))
+ out = make([]byte, l)
+ return Encode64InPlace(x, out)
+}
+
+// Encode64 takes x, the uint to encode, and buf, the buffer to write to.
+func Encode64InPlace(x uint64, buf []byte) (out []byte) {
+ l := libcommon.BitLenToByteLen(bits.Len64(x))
+ out = buf[:l]
+
+ for i := l; i > 0; i-- {
+ out[i-1] = byte(x)
+ x >>= 8
+ }
+ return out
+}
+
+// Encode64 takes x, the uint to encode, and buf, the buffer to write to.
+func Decode64(buf []byte) (x uint64) {
+ for i, b := range buf {
+ x = x<<8 + uint64(b)
+ if i == 7 {
+ return
+ }
+ }
+ return
+}
diff --git a/cl/persistence/base_encoding/primitives_test.go b/cl/persistence/base_encoding/primitives_test.go
new file mode 100644
index 00000000000..26d7883d5cc
--- /dev/null
+++ b/cl/persistence/base_encoding/primitives_test.go
@@ -0,0 +1,15 @@
+package base_encoding
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/require"
+)
+
+func Test64(t *testing.T) {
+ number := uint64(0x1234567890abcd)
+
+ out := Encode64(number)
+ require.Equal(t, len(out), 7)
+ require.Equal(t, Decode64(out), number)
+}
diff --git a/cl/persistence/beacon_indicies/indicies.go b/cl/persistence/beacon_indicies/indicies.go
new file mode 100644
index 00000000000..da08b445b8f
--- /dev/null
+++ b/cl/persistence/beacon_indicies/indicies.go
@@ -0,0 +1,252 @@
+package beacon_indicies
+
+import (
+ "context"
+ "fmt"
+
+ libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/persistence/base_encoding"
+ _ "modernc.org/sqlite"
+)
+
+func WriteHighestFinalized(tx kv.RwTx, slot uint64) error {
+ return tx.Put(kv.HighestFinalized, kv.HighestFinalizedKey, base_encoding.Encode64(slot))
+}
+
+func ReadHighestFinalized(tx kv.Tx) (uint64, error) {
+ val, err := tx.GetOne(kv.HighestFinalized, kv.HighestFinalizedKey)
+ if err != nil {
+ return 0, err
+ }
+ if len(val) == 0 {
+ return 0, nil
+ }
+ return base_encoding.Decode64(val), nil
+}
+
+// WriteBlockRootSlot writes the slot associated with a block root.
+func WriteHeaderSlot(tx kv.RwTx, blockRoot libcommon.Hash, slot uint64) error {
+ return tx.Put(kv.BlockRootToSlot, blockRoot[:], base_encoding.Encode64(slot))
+}
+
+func ReadBlockSlotByBlockRoot(tx kv.Tx, blockRoot libcommon.Hash) (*uint64, error) {
+ slotBytes, err := tx.GetOne(kv.BlockRootToSlot, blockRoot[:])
+ if err != nil {
+ return nil, err
+ }
+ if len(slotBytes) == 0 {
+ return nil, nil
+ }
+ slot := new(uint64)
+ *slot = base_encoding.Decode64(slotBytes)
+ return slot, nil
+}
+
+// WriteBlockRootSlot writes the slot associated with a block root.
+func WriteStateRoot(tx kv.RwTx, blockRoot libcommon.Hash, stateRoot libcommon.Hash) error {
+ if err := tx.Put(kv.BlockRootToStateRoot, blockRoot[:], stateRoot[:]); err != nil {
+ return err
+ }
+ return tx.Put(kv.StateRootToBlockRoot, stateRoot[:], blockRoot[:])
+}
+
+func ReadStateRootByBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (libcommon.Hash, error) {
+ var stateRoot libcommon.Hash
+
+ sRoot, err := tx.GetOne(kv.BlockRootToStateRoot, blockRoot[:])
+ if err != nil {
+ return libcommon.Hash{}, err
+ }
+
+ copy(stateRoot[:], sRoot)
+
+ return stateRoot, nil
+}
+
+func ReadBlockRootByStateRoot(tx kv.Tx, stateRoot libcommon.Hash) (libcommon.Hash, error) {
+ var blockRoot libcommon.Hash
+
+ bRoot, err := tx.GetOne(kv.StateRootToBlockRoot, stateRoot[:])
+ if err != nil {
+ return libcommon.Hash{}, err
+ }
+
+ copy(blockRoot[:], bRoot)
+
+ return stateRoot, nil
+}
+
+func ReadCanonicalBlockRoot(tx kv.Tx, slot uint64) (libcommon.Hash, error) {
+ var blockRoot libcommon.Hash
+
+ bRoot, err := tx.GetOne(kv.CanonicalBlockRoots, base_encoding.Encode64(slot))
+ if err != nil {
+ return libcommon.Hash{}, err
+ }
+
+ copy(blockRoot[:], bRoot)
+ return blockRoot, nil
+}
+
+func MarkRootCanonical(ctx context.Context, tx kv.RwTx, slot uint64, blockRoot libcommon.Hash) error {
+ return tx.Put(kv.CanonicalBlockRoots, base_encoding.Encode64(slot), blockRoot[:])
+}
+
+func WriteBeaconBlockHeader(ctx context.Context, tx kv.RwTx, signedHeader *cltypes.SignedBeaconBlockHeader) error {
+ headersBytes, err := signedHeader.EncodeSSZ(nil)
+ if err != nil {
+ return err
+ }
+ blockRoot, err := signedHeader.Header.HashSSZ()
+ if err != nil {
+ return err
+ }
+ return tx.Put(kv.BeaconBlockHeaders, blockRoot[:], headersBytes)
+}
+
+func WriteBeaconBlockHeaderAndIndicies(ctx context.Context, tx kv.RwTx, signedHeader *cltypes.SignedBeaconBlockHeader, forceCanonical bool) error {
+ blockRoot, err := signedHeader.Header.HashSSZ()
+ if err != nil {
+ return err
+ }
+ if err := WriteBeaconBlockHeader(ctx, tx, signedHeader); err != nil {
+ return err
+ }
+ if err := WriteHeaderSlot(tx, blockRoot, signedHeader.Header.Slot); err != nil {
+ return err
+ }
+ if err := WriteStateRoot(tx, blockRoot, signedHeader.Header.Root); err != nil {
+ return err
+ }
+ if err := WriteParentBlockRoot(ctx, tx, blockRoot, signedHeader.Header.ParentRoot); err != nil {
+ return err
+ }
+ if forceCanonical {
+ if err := MarkRootCanonical(ctx, tx, signedHeader.Header.Slot, blockRoot); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func ReadParentBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (libcommon.Hash, error) {
+ var parentRoot libcommon.Hash
+
+ pRoot, err := tx.GetOne(kv.BlockRootToParentRoot, blockRoot[:])
+ if err != nil {
+ return libcommon.Hash{}, err
+ }
+
+ copy(parentRoot[:], pRoot)
+
+ return parentRoot, nil
+}
+
+func WriteParentBlockRoot(ctx context.Context, tx kv.RwTx, blockRoot, parentRoot libcommon.Hash) error {
+ return tx.Put(kv.BlockRootToParentRoot, blockRoot[:], parentRoot[:])
+}
+
+func TruncateCanonicalChain(ctx context.Context, tx kv.RwTx, slot uint64) error {
+ return tx.ForEach(kv.CanonicalBlockRoots, base_encoding.Encode64(slot), func(k, _ []byte) error {
+ return tx.Delete(kv.CanonicalBlockRoots, k)
+ })
+}
+
+func RangeBlockRoots(ctx context.Context, tx kv.Tx, fromSlot, toSlot uint64, fn func(slot uint64, beaconBlockRoot libcommon.Hash) bool) error {
+ cursor, err := tx.Cursor(kv.CanonicalBlockRoots)
+ if err != nil {
+ return err
+ }
+ for k, v, err := cursor.Seek(base_encoding.Encode64(fromSlot)); err == nil && k != nil && base_encoding.Decode64(k) <= toSlot; k, v, err = cursor.Next() {
+ if !fn(base_encoding.Decode64(k), libcommon.BytesToHash(v)) {
+ break
+ }
+ }
+ return err
+}
+
+func PruneBlockRoots(ctx context.Context, tx kv.RwTx, fromSlot, toSlot uint64) error {
+ cursor, err := tx.RwCursor(kv.CanonicalBlockRoots)
+ if err != nil {
+ return err
+ }
+ for k, _, err := cursor.Seek(base_encoding.Encode64(fromSlot)); err == nil && k != nil && base_encoding.Decode64(k) <= toSlot; k, _, err = cursor.Next() {
+ if err := cursor.DeleteCurrent(); err != nil {
+ return err
+ }
+ }
+ return err
+}
+
+func ReadBeaconBlockRootsInSlotRange(ctx context.Context, tx kv.Tx, fromSlot, count uint64) ([]libcommon.Hash, []uint64, error) {
+ blockRoots := make([]libcommon.Hash, 0, count)
+ slots := make([]uint64, 0, count)
+ err := RangeBlockRoots(ctx, tx, fromSlot, fromSlot+count, func(slot uint64, beaconBlockRoot libcommon.Hash) bool {
+ blockRoots = append(blockRoots, beaconBlockRoot)
+ slots = append(slots, slot)
+ return true
+ })
+ return blockRoots, slots, err
+}
+
+func ReadSignedHeaderByBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) {
+ h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}}
+ headerBytes, err := tx.GetOne(kv.BeaconBlockHeaders, blockRoot[:])
+ if err != nil {
+ return nil, false, err
+ }
+ if len(headerBytes) == 0 {
+ return nil, false, nil
+ }
+ if err := h.DecodeSSZ(headerBytes, 0); err != nil {
+ return nil, false, fmt.Errorf("failed to decode BeaconHeader: %v", err)
+ }
+ canonical, err := ReadCanonicalBlockRoot(tx, h.Header.Slot)
+ if err != nil {
+ return nil, false, err
+ }
+ return h, canonical == blockRoot, nil
+}
+
+func ReadSignedHeaderByStateRoot(ctx context.Context, tx kv.Tx, stateRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) {
+ blockRoot, err := ReadBlockRootByStateRoot(tx, stateRoot)
+ if err != nil {
+ return nil, false, err
+ }
+ return ReadSignedHeaderByBlockRoot(ctx, tx, blockRoot)
+}
+
+// We dont support non-canonicals for the below methods
+
+func ReadSignedHeadersBySlot(ctx context.Context, tx kv.Tx, slot uint64) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) {
+ root, err := ReadCanonicalBlockRoot(tx, slot)
+ if err != nil {
+ return nil, nil, err
+ }
+ if root == (libcommon.Hash{}) {
+ return nil, nil, nil
+ }
+ h, _, err := ReadSignedHeaderByBlockRoot(ctx, tx, root)
+ if err != nil {
+ return nil, nil, err
+ }
+ if h == nil {
+ return nil, nil, nil
+ }
+ return []*cltypes.SignedBeaconBlockHeader{h}, []bool{true}, nil
+}
+
+func ReadSignedHeadersByParentRoot(ctx context.Context, tx kv.Tx, parentRoot libcommon.Hash) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) {
+ // Execute the query.
+ slot, err := ReadBlockSlotByBlockRoot(tx, parentRoot)
+ if err != nil {
+ return nil, nil, err
+ }
+ if slot == nil {
+ return nil, nil, nil
+ }
+ return ReadSignedHeadersBySlot(ctx, tx, *slot)
+}
diff --git a/cl/persistence/beacon_indicies/sql_indexer_test.go b/cl/persistence/beacon_indicies/indicies_test.go
similarity index 71%
rename from cl/persistence/beacon_indicies/sql_indexer_test.go
rename to cl/persistence/beacon_indicies/indicies_test.go
index db77f24d353..7451327b89b 100644
--- a/cl/persistence/beacon_indicies/sql_indexer_test.go
+++ b/cl/persistence/beacon_indicies/indicies_test.go
@@ -2,54 +2,51 @@ package beacon_indicies
import (
"context"
- "database/sql"
"testing"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon-lib/kv/memdb"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations"
"github.com/stretchr/testify/require"
)
-func setupTestDB(t *testing.T) *sql.DB {
+func setupTestDB(t *testing.T) kv.RwDB {
// Create an in-memory SQLite DB for testing purposes
- db, err := sql.Open("sqlite", "file::memory:?cache=shared")
- require.NoError(t, err)
+ db := memdb.NewTestDB(t)
return db
}
func TestWriteBlockRoot(t *testing.T) {
db := setupTestDB(t)
defer db.Close()
- tx, _ := db.Begin()
+ tx, _ := db.BeginRw(context.Background())
defer tx.Rollback()
- sql_migrations.ApplyMigrations(context.Background(), tx)
-
// Mock a block
block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
block.Block.Slot = 56
block.EncodingSizeSSZ()
- require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, false))
+ require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), false))
// Try to retrieve the block's slot by its blockRoot and verify
blockRoot, err := block.Block.HashSSZ()
require.NoError(t, err)
- retrievedSlot, err := ReadBlockSlotByBlockRoot(context.Background(), tx, blockRoot)
+ retrievedSlot, err := ReadBlockSlotByBlockRoot(tx, blockRoot)
require.NoError(t, err)
require.Equal(t, block.Block.Slot, *retrievedSlot)
- canonicalRoot, err := ReadCanonicalBlockRoot(context.Background(), tx, *retrievedSlot)
+ canonicalRoot, err := ReadCanonicalBlockRoot(tx, *retrievedSlot)
require.NoError(t, err)
require.Equal(t, libcommon.Hash{}, canonicalRoot)
err = MarkRootCanonical(context.Background(), tx, *retrievedSlot, blockRoot)
require.NoError(t, err)
- canonicalRoot, err = ReadCanonicalBlockRoot(context.Background(), tx, *retrievedSlot)
+ canonicalRoot, err = ReadCanonicalBlockRoot(tx, *retrievedSlot)
require.NoError(t, err)
require.Equal(t, libcommon.Hash(blockRoot), canonicalRoot)
}
@@ -57,11 +54,9 @@ func TestWriteBlockRoot(t *testing.T) {
func TestReadParentBlockRoot(t *testing.T) {
db := setupTestDB(t)
defer db.Close()
- tx, _ := db.Begin()
+ tx, _ := db.BeginRw(context.Background())
defer tx.Rollback()
- sql_migrations.ApplyMigrations(context.Background(), tx)
-
mockParentRoot := libcommon.Hash{1}
// Mock a block
block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
@@ -69,7 +64,7 @@ func TestReadParentBlockRoot(t *testing.T) {
block.Block.ParentRoot = mockParentRoot
block.EncodingSizeSSZ()
- require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, false))
+ require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), false))
// Try to retrieve the block's slot by its blockRoot and verify
blockRoot, err := block.Block.HashSSZ()
@@ -83,11 +78,9 @@ func TestReadParentBlockRoot(t *testing.T) {
func TestTruncateCanonicalChain(t *testing.T) {
db := setupTestDB(t)
defer db.Close()
- tx, _ := db.Begin()
+ tx, _ := db.BeginRw(context.Background())
defer tx.Rollback()
- sql_migrations.ApplyMigrations(context.Background(), tx)
-
mockParentRoot := libcommon.Hash{1}
// Mock a block
block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
@@ -95,19 +88,19 @@ func TestTruncateCanonicalChain(t *testing.T) {
block.Block.ParentRoot = mockParentRoot
block.EncodingSizeSSZ()
- require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, true))
+ require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), true))
// Try to retrieve the block's slot by its blockRoot and verify
blockRoot, err := block.Block.HashSSZ()
require.NoError(t, err)
- canonicalRoot, err := ReadCanonicalBlockRoot(context.Background(), tx, block.Block.Slot)
+ canonicalRoot, err := ReadCanonicalBlockRoot(tx, block.Block.Slot)
require.NoError(t, err)
require.Equal(t, libcommon.Hash(blockRoot), canonicalRoot)
require.NoError(t, TruncateCanonicalChain(context.Background(), tx, 0))
- canonicalRoot, err = ReadCanonicalBlockRoot(context.Background(), tx, block.Block.Slot)
+ canonicalRoot, err = ReadCanonicalBlockRoot(tx, block.Block.Slot)
require.NoError(t, err)
require.Equal(t, canonicalRoot, libcommon.Hash{})
}
@@ -115,11 +108,9 @@ func TestTruncateCanonicalChain(t *testing.T) {
func TestReadBeaconBlockHeader(t *testing.T) {
db := setupTestDB(t)
defer db.Close()
- tx, _ := db.Begin()
+ tx, _ := db.BeginRw(context.Background())
defer tx.Rollback()
- sql_migrations.ApplyMigrations(context.Background(), tx)
-
mockParentRoot := libcommon.Hash{1}
mockSignature := [96]byte{23}
@@ -132,7 +123,7 @@ func TestReadBeaconBlockHeader(t *testing.T) {
canonical := true
block.EncodingSizeSSZ()
- require.NoError(t, GenerateBlockIndicies(context.Background(), tx, block, canonical))
+ require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), canonical))
// Try to retrieve the block's slot by its blockRoot and verify
blockRoot, err := block.Block.HashSSZ()
diff --git a/cl/persistence/beacon_indicies/sql_indexer.go b/cl/persistence/beacon_indicies/sql_indexer.go
deleted file mode 100644
index 93d0776b549..00000000000
--- a/cl/persistence/beacon_indicies/sql_indexer.go
+++ /dev/null
@@ -1,328 +0,0 @@
-package beacon_indicies
-
-import (
- "context"
- "database/sql"
- "errors"
- "fmt"
-
- libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/cl/cltypes"
- _ "modernc.org/sqlite"
-)
-
-type SQLObject interface {
- QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
- ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
- QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
-}
-
-func ReadBlockSlotByBlockRoot(ctx context.Context, tx SQLObject, blockRoot libcommon.Hash) (*uint64, error) {
- var slot uint64
-
- // Execute the query.
- err := tx.QueryRowContext(ctx, "SELECT slot FROM beacon_indicies WHERE beacon_block_root = ?", blockRoot[:]).Scan(&slot) // Note: blockRoot[:] converts [32]byte to []byte
- if err != nil {
- if errors.Is(err, sql.ErrNoRows) {
- return nil, nil
- }
- return nil, fmt.Errorf("failed to retrieve slot for BeaconBlockRoot: %v", err)
- }
-
- return &slot, nil
-}
-
-func ReadCanonicalBlockRoot(ctx context.Context, db SQLObject, slot uint64) (libcommon.Hash, error) {
- var blockRoot libcommon.Hash
-
- // Execute the query.
- err := db.QueryRowContext(ctx, "SELECT beacon_block_root FROM beacon_indicies WHERE slot = ? AND canonical = 1", slot).Scan(&blockRoot)
- if err != nil {
- if errors.Is(err, sql.ErrNoRows) {
- return libcommon.Hash{}, nil
- }
- return libcommon.Hash{}, fmt.Errorf("failed to retrieve BeaconBlockRoot for slot: %v", err)
- }
-
- return blockRoot, nil
-}
-
-func ReadStateRootByBlockRoot(ctx context.Context, db SQLObject, blockRoot libcommon.Hash) (libcommon.Hash, error) {
- var stateRoot libcommon.Hash
-
- // Execute the query.
- err := db.QueryRowContext(ctx, "SELECT state_root FROM beacon_indicies WHERE beacon_block_root = ?", blockRoot).Scan(&stateRoot)
- if err != nil {
- if errors.Is(err, sql.ErrNoRows) {
- return libcommon.Hash{}, nil
- }
- return libcommon.Hash{}, fmt.Errorf("failed to retrieve BeaconBlockRoot for slot: %v", err)
- }
-
- return stateRoot, nil
-}
-
-func MarkRootCanonical(ctx context.Context, db SQLObject, slot uint64, blockRoot libcommon.Hash) error {
- // First, reset the Canonical status for all other block roots with the same slot
- if _, err := db.ExecContext(ctx, "UPDATE beacon_indicies SET canonical = 0 WHERE slot = ?", slot); err != nil {
- return fmt.Errorf("failed to reset canonical status for other block roots: %v", err)
- }
-
- // Next, mark the given blockRoot as canonical
- if _, err := db.ExecContext(ctx, "UPDATE beacon_indicies SET canonical = 1 WHERE beacon_block_root = ?", blockRoot[:]); err != nil {
- return fmt.Errorf("failed to mark block root as canonical: %v", err)
- }
-
- return nil
-}
-
-func GenerateBlockIndicies(ctx context.Context, db SQLObject, signedBlock *cltypes.SignedBeaconBlock, forceCanonical bool) error {
- block := signedBlock.Block
- blockRoot, err := block.HashSSZ()
- if err != nil {
- return err
- }
-
- bodyRoot, err := block.Body.HashSSZ()
- if err != nil {
- return err
- }
-
- if forceCanonical {
- _, err = db.ExecContext(ctx, "DELETE FROM beacon_indicies WHERE slot = ?;", block.Slot)
- if err != nil {
- return fmt.Errorf("failed to write block root to beacon_indicies: %v", err)
- }
- }
- if _, err = db.ExecContext(ctx, "INSERT OR IGNORE INTO beacon_indicies (slot, proposer_index, beacon_block_root, state_root, parent_block_root, canonical, body_root, signature) VALUES (?, ?, ?, ?, ?, ?, ?, ?);",
- block.Slot,
- block.ProposerIndex,
- blockRoot[:],
- block.StateRoot[:],
- block.ParentRoot[:],
- forceCanonical,
- bodyRoot[:],
- signedBlock.Signature[:]); err != nil {
- return fmt.Errorf("failed to write block root to beacon_indicies: %v", err)
- }
-
- return nil
-}
-
-func ReadParentBlockRoot(ctx context.Context, db SQLObject, blockRoot libcommon.Hash) (libcommon.Hash, error) {
- var parentRoot libcommon.Hash
-
- // Execute the query.
- err := db.QueryRowContext(ctx, "SELECT parent_block_root FROM beacon_indicies WHERE beacon_block_root = ?", blockRoot[:]).Scan(&parentRoot)
- if err != nil {
- if err == sql.ErrNoRows {
- return libcommon.Hash{}, nil
- }
- return libcommon.Hash{}, fmt.Errorf("failed to retrieve ParentBlockRoot for BeaconBlockRoot: %v", err)
- }
-
- return parentRoot, nil
-}
-
-func TruncateCanonicalChain(ctx context.Context, db SQLObject, slot uint64) error {
- // Execute the query.
- _, err := db.ExecContext(ctx, `
- UPDATE beacon_indicies
- SET canonical = 0
- WHERE slot > ?;
- `, slot)
- if err != nil {
- if errors.Is(err, sql.ErrNoRows) {
- return nil
- }
- return fmt.Errorf("failed to truncate canonical chain: %v", err)
- }
-
- return nil
-}
-
-func PruneIndicies(ctx context.Context, db SQLObject, fromSlot, toSlot uint64) error {
- _, err := db.ExecContext(ctx, "DELETE FROM beacon_indicies WHERE slot >= ? AND slot <= ?", fromSlot, toSlot)
- if err != nil {
- return err
- }
- return nil
-}
-
-func IterateBeaconIndicies(ctx context.Context, db SQLObject, fromSlot, toSlot uint64, fn func(slot uint64, beaconBlockRoot, parentBlockRoot, stateRoot libcommon.Hash, canonical bool) bool) error {
- rows, err := db.QueryContext(ctx, "SELECT slot, beacon_block_root, state_root, parent_block_root, canonical FROM beacon_indicies WHERE slot BETWEEN ? AND ?", fromSlot, toSlot)
- if err != nil {
- return err
- }
- defer rows.Close()
-
- for rows.Next() {
- var slot uint64
- var beaconBlockRoot libcommon.Hash
- var stateRoot libcommon.Hash
- var parentBlockRoot libcommon.Hash
- var canonical uint64
-
- err := rows.Scan(&slot, &beaconBlockRoot, &stateRoot, &parentBlockRoot, &canonical)
- if err != nil {
- return err
- }
- if !fn(slot, beaconBlockRoot, parentBlockRoot, stateRoot, canonical != 0) {
- break
- }
- }
-
- if err = rows.Err(); err != nil {
- return err
- }
-
- return nil
-}
-
-func ReadBeaconBlockRootsInSlotRange(ctx context.Context, db SQLObject, fromSlot, count uint64) ([]libcommon.Hash, []uint64, error) {
- rows, err := db.QueryContext(ctx, "SELECT slot, beacon_block_root FROM beacon_indicies WHERE slot >= ? AND canonical > 0 LIMIT ?", fromSlot, count)
- if err != nil {
- return nil, nil, err
- }
- defer rows.Close()
- roots := []libcommon.Hash{}
- slots := []uint64{}
- for rows.Next() {
- var beaconBlockRoot libcommon.Hash
- var slot uint64
- err := rows.Scan(&slot, &beaconBlockRoot)
- if err != nil {
- return nil, nil, err
- }
- roots = append(roots, beaconBlockRoot)
- slots = append(slots, slot)
- }
-
- if err = rows.Err(); err != nil {
- return nil, nil, err
- }
-
- return roots, slots, nil
-}
-
-func ReadSignedHeaderByBlockRoot(ctx context.Context, db SQLObject, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) {
- h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}}
- var canonical bool
- var signature []byte
- // Execute the query.
- err := db.QueryRowContext(ctx, `SELECT
- slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature
- FROM beacon_indicies WHERE beacon_block_root = ?`, blockRoot).Scan(
- &h.Header.Slot,
- &h.Header.ProposerIndex,
- &h.Header.Root,
- &h.Header.ParentRoot,
- &canonical,
- &h.Header.BodyRoot,
- &signature,
- )
-
- if err != nil {
- if errors.Is(err, sql.ErrNoRows) {
- return nil, false, nil
- }
- return nil, false, fmt.Errorf("failed to retrieve BeaconHeader: %v", err)
- }
-
- copy(h.Signature[:], signature)
- return h, canonical, nil
-}
-
-func ReadSignedHeaderByStateRoot(ctx context.Context, db SQLObject, stateRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) {
- h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}}
- var canonical bool
- var signature []byte
- // Execute the query.
- err := db.QueryRowContext(ctx, `SELECT
- slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature
- FROM beacon_indicies WHERE state_root = ?`, stateRoot).Scan(
- &h.Header.Slot,
- &h.Header.ProposerIndex,
- &h.Header.Root,
- &h.Header.ParentRoot,
- &canonical,
- &h.Header.BodyRoot,
- &signature,
- )
-
- if err != nil {
- if errors.Is(err, sql.ErrNoRows) {
- return nil, false, nil
- }
- return nil, false, fmt.Errorf("failed to retrieve BeaconHeader: %v", err)
- }
-
- copy(h.Signature[:], signature)
- return h, canonical, nil
-}
-
-func parseRowsIntoHeaders(rows *sql.Rows) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) {
- var signedHeaders []*cltypes.SignedBeaconBlockHeader
- var canonicals []bool
-
- for rows.Next() {
- var canonical bool
- var signature []byte
- h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}}
- err := rows.Scan(
- &h.Header.Slot,
- &h.Header.ProposerIndex,
- &h.Header.Root,
- &h.Header.ParentRoot,
- &canonical,
- &h.Header.BodyRoot,
- &signature,
- )
- if err != nil {
- return nil, nil, err
- }
- copy(h.Signature[:], signature)
- signedHeaders = append(signedHeaders, h)
- canonicals = append(canonicals, canonical)
- }
- return signedHeaders, canonicals, nil
-}
-
-func ReadSignedHeadersBySlot(ctx context.Context, db SQLObject, slot uint64) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) {
- // Execute the query.
- rows, err := db.QueryContext(ctx, `SELECT
- slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature
- FROM beacon_indicies WHERE slot = ?`, slot)
- if err != nil {
- return nil, nil, err
- }
- defer rows.Close()
-
- return parseRowsIntoHeaders(rows)
-}
-
-func ReadSignedHeadersByParentRoot(ctx context.Context, db SQLObject, parentRoot libcommon.Hash) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) {
- // Execute the query.
- rows, err := db.QueryContext(ctx, `SELECT
- slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature
- FROM beacon_indicies WHERE parent_root = ?`, parentRoot)
- if err != nil {
- return nil, nil, err
- }
- defer rows.Close()
-
- return parseRowsIntoHeaders(rows)
-}
-
-func ReadSignedHeadersByParentRootAndSlot(ctx context.Context, db SQLObject, parentRoot libcommon.Hash, slot uint64) ([]*cltypes.SignedBeaconBlockHeader, []bool, error) {
- // Execute the query.
- rows, err := db.QueryContext(ctx, `SELECT
- slot, proposer_index, state_root, parent_block_root, canonical, body_root, signature
- FROM beacon_indicies WHERE parent_root = ? AND slot = ?`, parentRoot, slot)
- if err != nil {
- return nil, nil, err
- }
- defer rows.Close()
-
- return parseRowsIntoHeaders(rows)
-}
diff --git a/cl/persistence/block_saver.go b/cl/persistence/block_saver.go
index db4b7480566..6bc35ae3c57 100644
--- a/cl/persistence/block_saver.go
+++ b/cl/persistence/block_saver.go
@@ -2,18 +2,19 @@ package persistence
import (
"context"
- "database/sql"
"fmt"
"io"
"path"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy"
+
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies"
"github.com/ledgerwatch/erigon/cl/phase1/execution_client"
"github.com/ledgerwatch/erigon/cl/sentinel/peers"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy"
"github.com/spf13/afero"
)
@@ -32,7 +33,31 @@ func NewBeaconChainDatabaseFilesystem(rawDB RawBeaconBlockChain, executionEngine
}
}
-func (b beaconChainDatabaseFilesystem) GetRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) {
+func (b beaconChainDatabaseFilesystem) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) {
+ blockRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, slot)
+ if err != nil {
+ return nil, err
+ }
+ if blockRoot == (libcommon.Hash{}) {
+ return nil, nil
+ }
+
+ r, err := b.rawDB.BlockReader(ctx, slot, blockRoot)
+ if err != nil {
+ return nil, err
+ }
+ defer r.Close()
+
+ block := cltypes.NewSignedBeaconBlock(b.cfg)
+ version := b.cfg.GetCurrentStateVersion(slot / b.cfg.SlotsPerEpoch)
+ if err := ssz_snappy.DecodeAndReadNoForkDigest(r, block, version); err != nil {
+ return nil, err
+ }
+
+ return &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: block}, nil
+}
+
+func (b beaconChainDatabaseFilesystem) GetRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) {
// Retrieve block roots for each ranged slot
beaconBlockRooots, slots, err := beacon_indicies.ReadBeaconBlockRootsInSlotRange(ctx, tx, from, count)
if err != nil {
@@ -40,10 +65,10 @@ func (b beaconChainDatabaseFilesystem) GetRange(tx *sql.Tx, ctx context.Context,
}
if len(beaconBlockRooots) == 0 {
- return nil, nil
+ return &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{}, nil
}
- blocks := []*peers.PeeredObject[*cltypes.SignedBeaconBlock]{}
+ blocks := []*cltypes.SignedBeaconBlock{}
for idx, blockRoot := range beaconBlockRooots {
slot := slots[idx]
@@ -59,28 +84,24 @@ func (b beaconChainDatabaseFilesystem) GetRange(tx *sql.Tx, ctx context.Context,
return nil, err
}
- blocks = append(blocks, &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: block})
+ blocks = append(blocks, block)
}
- return blocks, nil
+ return &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{Data: blocks}, nil
}
-func (b beaconChainDatabaseFilesystem) PurgeRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) error {
- if err := beacon_indicies.IterateBeaconIndicies(ctx, tx, from, from+count, func(slot uint64, beaconBlockRoot, _, _ libcommon.Hash, _ bool) bool {
+func (b beaconChainDatabaseFilesystem) PurgeRange(ctx context.Context, tx kv.RwTx, from uint64, count uint64) error {
+ if err := beacon_indicies.RangeBlockRoots(ctx, tx, from, from+count, func(slot uint64, beaconBlockRoot libcommon.Hash) bool {
b.rawDB.DeleteBlock(ctx, slot, beaconBlockRoot)
return true
}); err != nil {
return err
}
- if err := beacon_indicies.PruneIndicies(ctx, tx, from, from+count); err != nil {
- return err
- }
-
- return nil
+ return beacon_indicies.PruneBlockRoots(ctx, tx, from, from+count)
}
-func (b beaconChainDatabaseFilesystem) WriteBlock(tx *sql.Tx, ctx context.Context, block *cltypes.SignedBeaconBlock, canonical bool) error {
+func (b beaconChainDatabaseFilesystem) WriteBlock(ctx context.Context, tx kv.RwTx, block *cltypes.SignedBeaconBlock, canonical bool) error {
blockRoot, err := block.Block.HashSSZ()
if err != nil {
return err
@@ -114,8 +135,20 @@ func (b beaconChainDatabaseFilesystem) WriteBlock(tx *sql.Tx, ctx context.Contex
return err
}
}
-
- if err := beacon_indicies.GenerateBlockIndicies(ctx, tx, block, canonical); err != nil {
+ bodyRoot, err := block.Block.Body.HashSSZ()
+ if err != nil {
+ return err
+ }
+ if err := beacon_indicies.WriteBeaconBlockHeaderAndIndicies(ctx, tx, &cltypes.SignedBeaconBlockHeader{
+ Signature: block.Signature,
+ Header: &cltypes.BeaconBlockHeader{
+ Slot: block.Block.Slot,
+ ParentRoot: block.Block.ParentRoot,
+ ProposerIndex: block.Block.ProposerIndex,
+ Root: block.Block.StateRoot,
+ BodyRoot: bodyRoot,
+ },
+ }, canonical); err != nil {
return err
}
return nil
diff --git a/cl/persistence/block_saver_test.go b/cl/persistence/block_saver_test.go
index b94aa02ae45..c49e593feba 100644
--- a/cl/persistence/block_saver_test.go
+++ b/cl/persistence/block_saver_test.go
@@ -2,16 +2,16 @@ package persistence
import (
"context"
- "database/sql"
"testing"
_ "embed"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon-lib/kv/memdb"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
- "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations"
"github.com/ledgerwatch/erigon/cl/phase1/execution_client"
"github.com/ledgerwatch/erigon/cl/utils"
"github.com/ledgerwatch/erigon/core/types"
@@ -33,6 +33,10 @@ func (m *mockEngine) ForkChoiceUpdate(finalized libcommon.Hash, head libcommon.H
panic("unimplemented")
}
+func (m *mockEngine) FrozenBlocks() uint64 {
+ panic("unimplemented")
+}
+
func (m *mockEngine) NewPayload(payload *cltypes.Eth1Block, beaconParentRoot *libcommon.Hash) (bool, error) {
panic("unimplemented")
}
@@ -94,26 +98,9 @@ func getTestBlock() *cltypes.SignedBeaconBlock {
return bcBlock
}
-func setupStore(t *testing.T, full bool) (BeaconChainDatabase, *sql.DB, execution_client.ExecutionEngine) {
+func setupStore(t *testing.T, full bool) (BeaconChainDatabase, kv.RwDB, execution_client.ExecutionEngine) {
// Open an in-memory SQLite database for testing
- db, err := sql.Open("sqlite", ":memory:")
- if err != nil {
- t.Fatalf("Failed to open database: %v", err)
- }
-
- // Start a transaction for testing
- tx, err := db.Begin()
- if err != nil {
- t.Fatalf("Failed to start transaction: %v", err)
- }
- defer tx.Rollback()
-
- // Call ApplyMigrations with the test transaction
- err = sql_migrations.ApplyMigrations(context.Background(), tx)
- if err != nil {
- t.Fatalf("ApplyMigrations failed: %v", err)
- }
- tx.Commit()
+ db := memdb.NewTestDB(t)
// Create an in-memory filesystem
fs := afero.NewMemMapFs()
engine := newMockEngine()
@@ -124,28 +111,28 @@ func TestBlockSaverStoreLoadPurgeFull(t *testing.T) {
store, db, _ := setupStore(t, true)
defer db.Close()
- tx, _ := db.Begin()
+ tx, _ := db.BeginRw(context.Background())
defer tx.Rollback()
ctx := context.Background()
block := getTestBlock()
- require.NoError(t, store.WriteBlock(tx, ctx, block, true))
+ require.NoError(t, store.WriteBlock(ctx, tx, block, true))
- blks, err := store.GetRange(tx, context.Background(), block.Block.Slot, 1)
+ blks, err := store.GetRange(context.Background(), tx, block.Block.Slot, 1)
require.NoError(t, err)
- require.Equal(t, len(blks), 1)
+ require.Equal(t, len(blks.Data), 1)
expectedRoot, err := block.HashSSZ()
require.NoError(t, err)
- haveRoot, err := blks[0].Data.HashSSZ()
+ haveRoot, err := blks.Data[0].HashSSZ()
require.NoError(t, err)
require.Equal(t, expectedRoot, haveRoot)
- require.NoError(t, store.PurgeRange(tx, ctx, 0, 99999999999)) // THE PUURGE
+ require.NoError(t, store.PurgeRange(ctx, tx, 0, 99999999999)) // THE PUURGE
- newBlks, err := store.GetRange(tx, context.Background(), block.Block.Slot, 1)
+ newBlks, err := store.GetRange(context.Background(), tx, block.Block.Slot, 1)
require.NoError(t, err)
- require.Equal(t, len(newBlks), 0)
+ require.Equal(t, len(newBlks.Data), 0)
}
diff --git a/cl/persistence/block_store.go b/cl/persistence/block_store.go
index 812c4df4b8c..34d23192107 100644
--- a/cl/persistence/block_store.go
+++ b/cl/persistence/block_store.go
@@ -2,9 +2,10 @@ package persistence
import (
"context"
- "database/sql"
"sync"
+ "time"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/phase1/network"
"github.com/ledgerwatch/erigon/cl/rpc"
@@ -18,7 +19,7 @@ type BeaconRpcSource struct {
rpc *rpc.BeaconRpcP2P
}
-func (b *BeaconRpcSource) SaveBlocks(ctx context.Context, blocks []*peers.PeeredObject[*cltypes.SignedBeaconBlock]) error {
+func (b *BeaconRpcSource) SaveBlocks(ctx context.Context, blocks *peers.PeeredObject[*cltypes.SignedBeaconBlock]) error {
// it is a no-op because there is no need to do this
return nil
}
@@ -29,24 +30,42 @@ func NewBeaconRpcSource(rpc *rpc.BeaconRpcP2P) *BeaconRpcSource {
}
}
-func (b *BeaconRpcSource) GetRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) {
+func (*BeaconRpcSource) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) {
+ panic("unimplemented")
+}
+
+func (b *BeaconRpcSource) GetRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) {
if count == 0 {
return nil, nil
}
- responses, pid, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, from, count)
- if err != nil {
- b.rpc.BanPeer(pid)
- return nil, err
- }
- out := make([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], 0, len(responses))
- for _, v := range responses {
- out = append(out, &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: v, Peer: pid})
+ var responses *peers.PeeredObject[[]*cltypes.SignedBeaconBlock]
+ reqInterval := time.NewTicker(200 * time.Millisecond)
+ doneRespCh := make(chan *peers.PeeredObject[[]*cltypes.SignedBeaconBlock], 1)
+ defer reqInterval.Stop()
+
+ for {
+ select {
+ case <-reqInterval.C:
+ go func() {
+ responses, pid, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, from, count)
+ if err != nil {
+ return
+ }
+ select {
+ case doneRespCh <- &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{Data: responses, Peer: pid}:
+ default:
+ }
+ }()
+ case <-ctx.Done():
+ return nil, ctx.Err()
+ case responses = <-doneRespCh:
+ return responses, nil
+ }
}
- return out, nil
}
// a noop for rpc source since we always return new data
-func (b *BeaconRpcSource) PurgeRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) error {
+func (b *BeaconRpcSource) PurgeRange(ctx context.Context, _ kv.RwTx, from uint64, count uint64) error {
return nil
}
@@ -60,6 +79,10 @@ type GossipSource struct {
blocks *btree.Map[uint64, chan *peers.PeeredObject[*cltypes.SignedBeaconBlock]]
}
+func (*GossipSource) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) {
+ panic("unimplemented")
+}
+
func NewGossipSource(ctx context.Context, gossip *network.GossipManager) *GossipSource {
g := &GossipSource{
gossip: gossip,
@@ -93,21 +116,22 @@ func (b *GossipSource) grabOrCreate(ctx context.Context, id uint64) chan *peers.
}
return ch
}
-func (b *GossipSource) GetRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) {
- out := make([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], 0, count)
+func (b *GossipSource) GetRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) {
+ out := &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{}
for i := from; i < from+count; i++ {
ch := b.grabOrCreate(ctx, i)
select {
case <-ctx.Done():
return nil, ctx.Err()
case item := <-ch:
- out = append(out, item)
+ out.Data = append(out.Data, item.Data)
+ out.Peer = item.Peer
}
}
return out, nil
}
-func (b *GossipSource) PurgeRange(_ *sql.Tx, ctx context.Context, from uint64, count uint64) error {
+func (b *GossipSource) PurgeRange(ctx context.Context, _ kv.RwTx, from uint64, count uint64) error {
b.mu.Lock()
defer b.mu.Unlock()
initSize := count
diff --git a/cl/persistence/db_config/db_config.go b/cl/persistence/db_config/db_config.go
index 3d8bb9adc40..340d025014e 100644
--- a/cl/persistence/db_config/db_config.go
+++ b/cl/persistence/db_config/db_config.go
@@ -1,8 +1,11 @@
package db_config
import (
+ "bytes"
"context"
- "database/sql"
+
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon/ethdb/cbor"
)
type DatabaseConfiguration struct{ PruneDepth uint64 }
@@ -11,28 +14,24 @@ var DefaultDatabaseConfiguration = DatabaseConfiguration{PruneDepth: 1000}
// should be 1_000_000
-func WriteConfigurationIfNotExist(ctx context.Context, tx *sql.Tx, cfg DatabaseConfiguration) error {
- var count int
- err := tx.QueryRow("SELECT COUNT(*) FROM data_config;").Scan(&count)
- if err != nil {
- return err
- }
- if count > 0 {
- return nil
- }
- _, err = tx.ExecContext(ctx, "INSERT INTO data_config (prune_depth) VALUES (?);", cfg.PruneDepth)
- if err != nil {
+func WriteConfigurationIfNotExist(ctx context.Context, tx kv.RwTx, cfg DatabaseConfiguration) error {
+ var b bytes.Buffer
+ if err := cbor.Encoder(&b).Encode(cfg); err != nil {
return err
}
- return nil
+
+ return tx.Put(kv.DatabaseInfo, []byte("config"), b.Bytes())
}
-func ReadConfiguration(ctx context.Context, tx *sql.Tx) (DatabaseConfiguration, error) {
- var pruneDepth uint64
+func ReadConfiguration(ctx context.Context, tx kv.Tx) (DatabaseConfiguration, error) {
+ var cfg DatabaseConfiguration
- err := tx.QueryRowContext(ctx, "SELECT prune_depth FROM data_config").Scan(&pruneDepth)
+ cfgEncoded, err := tx.GetOne(kv.DatabaseInfo, []byte("config"))
if err != nil {
- return DatabaseConfiguration{}, err
+ return cfg, err
+ }
+ if err := cbor.Decoder(bytes.NewReader(cfgEncoded)).Decode(&cfg); err != nil {
+ return cfg, err
}
- return DatabaseConfiguration{PruneDepth: pruneDepth}, nil
+ return cfg, err
}
diff --git a/cl/persistence/db_config/db_config_test.go b/cl/persistence/db_config/db_config_test.go
index 8a07d14ce19..0133f4862a5 100644
--- a/cl/persistence/db_config/db_config_test.go
+++ b/cl/persistence/db_config/db_config_test.go
@@ -2,46 +2,23 @@ package db_config
import (
"context"
- "database/sql"
"testing"
- "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations"
+ "github.com/ledgerwatch/erigon-lib/kv/memdb"
"github.com/stretchr/testify/require"
_ "modernc.org/sqlite"
)
-func setupTestDB(t *testing.T) *sql.DB {
- db, err := sql.Open("sqlite", ":memory:")
- if err != nil {
- t.Fatalf("Failed to open database: %v", err)
- }
-
- // Start a transaction for testing
- tx, err := db.Begin()
- if err != nil {
- t.Fatalf("Failed to start transaction: %v", err)
- }
- defer tx.Rollback()
-
- // Call ApplyMigrations with the test transaction
- err = sql_migrations.ApplyMigrations(context.Background(), tx)
- if err != nil {
- t.Fatalf("ApplyMigrations failed: %v", err)
- }
- tx.Commit()
- return db
-}
-
func TestDBConfig(t *testing.T) {
- db := setupTestDB(t)
+ db := memdb.NewTestDB(t)
defer db.Close()
-
- tx, err := db.Begin()
+ tx, err := db.BeginRw(context.Background())
+ defer tx.Rollback()
require.NoError(t, err)
+
c := DatabaseConfiguration{PruneDepth: 69}
require.NoError(t, WriteConfigurationIfNotExist(context.Background(), tx, c))
cfg, err := ReadConfiguration(context.Background(), tx)
require.NoError(t, err)
-
require.Equal(t, cfg, c)
}
diff --git a/cl/persistence/format/chunk_encoding/chunks.go b/cl/persistence/format/chunk_encoding/chunks.go
new file mode 100644
index 00000000000..28afb2008d9
--- /dev/null
+++ b/cl/persistence/format/chunk_encoding/chunks.go
@@ -0,0 +1,68 @@
+package chunk_encoding
+
+import (
+ "encoding/binary"
+ "io"
+)
+
+type DataType int
+
+const (
+ ChunkDataType DataType = 0
+ PointerDataType DataType = 1
+)
+
+// writeChunk writes a chunk to the writer.
+func WriteChunk(w io.Writer, buf []byte, t DataType) error {
+
+ // prefix is type of chunk + length of chunk
+ prefix := make([]byte, 8)
+ binary.BigEndian.PutUint64(prefix, uint64(len(buf)))
+ prefix[0] = byte(t)
+ if _, err := w.Write(prefix); err != nil {
+ return err
+ }
+ if _, err := w.Write(buf); err != nil {
+ return err
+ }
+ return nil
+}
+
+func ReadChunk(r io.Reader, out io.Writer) (t DataType, err error) {
+ prefix := make([]byte, 8)
+ if _, err := r.Read(prefix); err != nil {
+ return DataType(0), err
+ }
+ t = DataType(prefix[0])
+ prefix[0] = 0
+
+ bufLen := binary.BigEndian.Uint64(prefix)
+ if bufLen == 0 {
+ return
+ }
+
+ if _, err = io.CopyN(out, r, int64(bufLen)); err != nil {
+ return
+ }
+ return
+}
+
+func ReadChunkToBytes(r io.Reader) (b []byte, t DataType, err error) {
+ prefix := make([]byte, 8)
+ if _, err := r.Read(prefix); err != nil {
+ return nil, DataType(0), err
+ }
+ t = DataType(prefix[0])
+ prefix[0] = 0
+
+ bufLen := binary.BigEndian.Uint64(prefix)
+ if bufLen == 0 {
+ return
+ }
+ b = make([]byte, bufLen)
+
+ if _, err = r.Read(b); err != nil {
+ return
+ }
+ return
+}
diff --git a/cl/persistence/snapshot_format/blocks.go b/cl/persistence/format/snapshot_format/blocks.go
similarity index 57%
rename from cl/persistence/snapshot_format/blocks.go
rename to cl/persistence/format/snapshot_format/blocks.go
index 84624162acc..66e4077318d 100644
--- a/cl/persistence/snapshot_format/blocks.go
+++ b/cl/persistence/format/snapshot_format/blocks.go
@@ -1,14 +1,21 @@
package snapshot_format
import (
+ "bytes"
"encoding/binary"
"fmt"
"io"
+ "sync"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/persistence/format/chunk_encoding"
)
+var buffersPool = sync.Pool{
+ New: func() interface{} { return &bytes.Buffer{} },
+}
+
type ExecutionBlockReaderByNumber interface {
BlockByNumber(number uint64) (*cltypes.Eth1Block, error)
}
@@ -25,31 +32,20 @@ const (
denebBlockAdditionalBaseOffset = 4 /*BlobKzgCommitments Offset*/
)
-func writeChunkLength(w io.Writer, length uint64) error {
- temp := make([]byte, 8)
- binary.BigEndian.PutUint64(temp, length)
-
- if _, err := w.Write(temp); err != nil {
- return err
- }
-
- return nil
-}
-
func writeExecutionBlockPtr(w io.Writer, p *cltypes.Eth1Block) error {
temp := make([]byte, 8)
binary.BigEndian.PutUint64(temp, p.BlockNumber)
- return writeChunk(w, temp, pointerDataType, false)
+ return chunk_encoding.WriteChunk(w, temp, chunk_encoding.PointerDataType)
}
func readExecutionBlockPtr(r io.Reader) (uint64, error) {
- b, dT, err := readChunk(r, false)
+ b, dT, err := chunk_encoding.ReadChunkToBytes(r)
if err != nil {
return 0, err
}
- if dT != pointerDataType {
- return 0, fmt.Errorf("malformed beacon block, invalid block pointer type %d, expected: %d", dT, pointerDataType)
+ if dT != chunk_encoding.PointerDataType {
+ return 0, fmt.Errorf("malformed beacon block, invalid block pointer type %d, expected: %d", dT, chunk_encoding.ChunkDataType)
}
return binary.BigEndian.Uint64(b), nil
}
@@ -73,6 +69,10 @@ func computeInitialOffset(version clparams.StateVersion) uint64 {
// WriteBlockForSnapshot writes a block to the given writer in the format expected by the snapshot.
func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error {
+ bodyRoot, err := block.Block.Body.HashSSZ()
+ if err != nil {
+ return err
+ }
// Maybe reuse the buffer?
encoded, err := block.EncodeSSZ(nil)
if err != nil {
@@ -82,28 +82,20 @@ func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error
if _, err := w.Write([]byte{byte(version)}); err != nil {
return err
}
+ if _, err := w.Write(bodyRoot[:]); err != nil {
+ return err
+ }
currentChunkLength := computeInitialOffset(version)
body := block.Block.Body
// count in body for phase0 fields
currentChunkLength += uint64(body.ProposerSlashings.EncodingSizeSSZ())
currentChunkLength += uint64(body.AttesterSlashings.EncodingSizeSSZ())
-
- // Write the chunk and chunk attestations
- if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType, false); err != nil {
- return err
- }
- encoded = encoded[currentChunkLength:]
- if err := writeChunk(w, encoded[:uint64(body.Attestations.EncodingSizeSSZ())], chunkDataType, true); err != nil {
- return err
- }
- encoded = encoded[body.Attestations.EncodingSizeSSZ():]
- currentChunkLength = 0
-
+ currentChunkLength += uint64(body.Attestations.EncodingSizeSSZ())
currentChunkLength += uint64(body.Deposits.EncodingSizeSSZ())
currentChunkLength += uint64(body.VoluntaryExits.EncodingSizeSSZ())
-
- if err := writeChunk(w, encoded[:currentChunkLength], chunkDataType, false); err != nil {
+ // Write the chunk and chunk attestations
+ if err := chunk_encoding.WriteChunk(w, encoded[:currentChunkLength], chunk_encoding.ChunkDataType); err != nil {
return err
}
// we are done if we are before altair
@@ -117,79 +109,81 @@ func WriteBlockForSnapshot(block *cltypes.SignedBeaconBlock, w io.Writer) error
if version <= clparams.BellatrixVersion {
return nil
}
- return writeChunk(w, encoded, chunkDataType, false)
+ return chunk_encoding.WriteChunk(w, encoded, chunk_encoding.ChunkDataType)
}
-func ReadBlockFromrSnapshot(r io.Reader, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (*cltypes.SignedBeaconBlock, error) {
- // Metadata section is just the current hardfork of the block. TODO(give it a useful purpose)
- v, err := readMetadataForBlock(r)
- if err != nil {
- return nil, err
+func readMetadataForBlock(r io.Reader, b []byte) (clparams.StateVersion, error) {
+ if _, err := r.Read(b); err != nil {
+ return 0, err
}
+ return clparams.StateVersion(b[0]), nil
+}
- // Read the first chunk
- chunk1, dT1, err := readChunk(r, false)
+func ReadBlockFromSnapshot(r io.Reader, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (*cltypes.SignedBeaconBlock, error) {
+ block := cltypes.NewSignedBeaconBlock(cfg)
+ buffer := buffersPool.Get().(*bytes.Buffer)
+ defer buffersPool.Put(buffer)
+ buffer.Reset()
+
+ v, err := ReadRawBlockFromSnapshot(r, buffer, executionReader, cfg)
if err != nil {
return nil, err
}
- if dT1 != chunkDataType {
- return nil, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunkDataType)
- }
- // Read the attestation chunk (2nd chunk)
- chunk2, dT2, err := readChunk(r, true)
+ return block, block.DecodeSSZ(buffer.Bytes(), int(v))
+}
+
+func ReadRawBlockFromSnapshot(r io.Reader, out io.Writer, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (clparams.StateVersion, error) {
+ metadataSlab := make([]byte, 33)
+ // Metadata section is just the current hardfork of the block.
+ v, err := readMetadataForBlock(r, metadataSlab)
if err != nil {
- return nil, err
- }
- if dT2 != chunkDataType {
- return nil, fmt.Errorf("malformed beacon block, invalid chunk 2 type %d, expected: %d", dT2, chunkDataType)
+ return v, err
}
- // Read the 3rd chunk
- chunk3, dT3, err := readChunk(r, false)
+
+ // Read the first chunk
+ dT1, err := chunk_encoding.ReadChunk(r, out)
if err != nil {
- return nil, err
+ return v, err
}
- if dT3 != chunkDataType {
- return nil, fmt.Errorf("malformed beacon block, invalid chunk 3 type %d, expected: %d", dT3, chunkDataType)
+ if dT1 != chunk_encoding.ChunkDataType {
+ return v, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunk_encoding.ChunkDataType)
}
+
if v <= clparams.AltairVersion {
- return blockFromChunks(v, cfg, chunk1, chunk2, chunk3)
+ return v, nil
}
// Read the block pointer and retrieve chunk4 from the execution reader
blockPointer, err := readExecutionBlockPtr(r)
if err != nil {
- return nil, err
+ return v, err
}
executionBlock, err := executionReader.BlockByNumber(blockPointer)
if err != nil {
- return nil, err
+ return v, err
}
- // Read the 4th chunk
- chunk4, err := executionBlock.EncodeSSZ(nil)
+ if executionBlock == nil {
+ return v, fmt.Errorf("execution block %d not found", blockPointer)
+ }
+ // TODO(Giulio2002): optimize GC
+ eth1Bytes, err := executionBlock.EncodeSSZ(nil)
if err != nil {
- return nil, err
+ return v, err
+ }
+ if _, err := out.Write(eth1Bytes); err != nil {
+ return v, err
}
if v <= clparams.BellatrixVersion {
- return blockFromChunks(v, cfg, chunk1, chunk2, chunk3, chunk4)
+ return v, nil
}
// Read the 5h chunk
- chunk5, dT5, err := readChunk(r, false)
+ dT2, err := chunk_encoding.ReadChunk(r, out)
if err != nil {
- return nil, err
- }
- if dT5 != chunkDataType {
- return nil, fmt.Errorf("malformed beacon block, invalid chunk 5 type %d, expected: %d", dT5, chunkDataType)
+ return v, err
}
-
- return blockFromChunks(v, cfg, chunk1, chunk2, chunk3, chunk4, chunk5)
-}
-
-func blockFromChunks(v clparams.StateVersion, cfg *clparams.BeaconChainConfig, chunks ...[]byte) (*cltypes.SignedBeaconBlock, error) {
- block := cltypes.NewSignedBeaconBlock(cfg)
- plainSSZ := []byte{}
- for _, chunk := range chunks {
- plainSSZ = append(plainSSZ, chunk...)
+ if dT2 != chunk_encoding.ChunkDataType {
+ return v, fmt.Errorf("malformed beacon block, invalid chunk 5 type %d, expected: %d", dT2, chunk_encoding.ChunkDataType)
}
- return block, block.DecodeSSZ(plainSSZ, int(v))
+ return v, nil
}
diff --git a/cl/persistence/snapshot_format/blocks_test.go b/cl/persistence/format/snapshot_format/blocks_test.go
similarity index 75%
rename from cl/persistence/snapshot_format/blocks_test.go
rename to cl/persistence/format/snapshot_format/blocks_test.go
index 55f3c7b5518..8021c3fcc38 100644
--- a/cl/persistence/snapshot_format/blocks_test.go
+++ b/cl/persistence/format/snapshot_format/blocks_test.go
@@ -7,7 +7,7 @@ import (
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/persistence/snapshot_format"
+ "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format"
"github.com/ledgerwatch/erigon/cl/utils"
"github.com/stretchr/testify/require"
)
@@ -27,8 +27,15 @@ var capellaBlockSSZSnappy []byte
//go:embed test_data/deneb.ssz_snappy
var denebBlockSSZSnappy []byte
+var emptyBlock = cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
+
// obtain the test blocks
func getTestBlocks(t *testing.T) []*cltypes.SignedBeaconBlock {
+ var emptyBlockCapella = cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
+ emptyBlockCapella.Block.Slot = clparams.MainnetBeaconConfig.CapellaForkEpoch * 32
+
+ emptyBlock.EncodingSizeSSZ()
+ emptyBlockCapella.EncodingSizeSSZ()
denebBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
capellaBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
bellatrixBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
@@ -40,26 +47,18 @@ func getTestBlocks(t *testing.T) []*cltypes.SignedBeaconBlock {
require.NoError(t, utils.DecodeSSZSnappy(bellatrixBlock, bellatrixBlockSSZSnappy, int(clparams.BellatrixVersion)))
require.NoError(t, utils.DecodeSSZSnappy(altairBlock, altairBlockSSZSnappy, int(clparams.AltairVersion)))
require.NoError(t, utils.DecodeSSZSnappy(phase0Block, phase0BlockSSZSnappy, int(clparams.Phase0Version)))
- return []*cltypes.SignedBeaconBlock{phase0Block, altairBlock, bellatrixBlock, capellaBlock, denebBlock}
-}
-
-type TestBlockReader struct {
- Block *cltypes.Eth1Block
-}
-
-func (t *TestBlockReader) BlockByNumber(number uint64) (*cltypes.Eth1Block, error) {
- return t.Block, nil
+ return []*cltypes.SignedBeaconBlock{phase0Block, altairBlock, bellatrixBlock, capellaBlock, denebBlock, emptyBlock, emptyBlockCapella}
}
func TestBlockSnapshotEncoding(t *testing.T) {
for _, blk := range getTestBlocks(t) {
- var br TestBlockReader
+ var br snapshot_format.MockBlockReader
if blk.Version() >= clparams.BellatrixVersion {
- br = TestBlockReader{Block: blk.Block.Body.ExecutionPayload}
+ br = snapshot_format.MockBlockReader{Block: blk.Block.Body.ExecutionPayload}
}
var b bytes.Buffer
require.NoError(t, snapshot_format.WriteBlockForSnapshot(blk, &b))
- blk2, err := snapshot_format.ReadBlockFromrSnapshot(&b, &br, &clparams.MainnetBeaconConfig)
+ blk2, err := snapshot_format.ReadBlockFromSnapshot(&b, &br, &clparams.MainnetBeaconConfig)
require.NoError(t, err)
_ = blk2
hash1, err := blk.HashSSZ()
diff --git a/cl/persistence/snapshot_format/test_data/altair.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/altair.ssz_snappy
similarity index 100%
rename from cl/persistence/snapshot_format/test_data/altair.ssz_snappy
rename to cl/persistence/format/snapshot_format/test_data/altair.ssz_snappy
diff --git a/cl/persistence/snapshot_format/test_data/bellatrix.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/bellatrix.ssz_snappy
similarity index 100%
rename from cl/persistence/snapshot_format/test_data/bellatrix.ssz_snappy
rename to cl/persistence/format/snapshot_format/test_data/bellatrix.ssz_snappy
diff --git a/cl/persistence/snapshot_format/test_data/capella.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/capella.ssz_snappy
similarity index 100%
rename from cl/persistence/snapshot_format/test_data/capella.ssz_snappy
rename to cl/persistence/format/snapshot_format/test_data/capella.ssz_snappy
diff --git a/cl/persistence/snapshot_format/test_data/deneb.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/deneb.ssz_snappy
similarity index 100%
rename from cl/persistence/snapshot_format/test_data/deneb.ssz_snappy
rename to cl/persistence/format/snapshot_format/test_data/deneb.ssz_snappy
diff --git a/cl/persistence/snapshot_format/test_data/phase0.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/phase0.ssz_snappy
similarity index 100%
rename from cl/persistence/snapshot_format/test_data/phase0.ssz_snappy
rename to cl/persistence/format/snapshot_format/test_data/phase0.ssz_snappy
diff --git a/cl/persistence/format/snapshot_format/test_util.go b/cl/persistence/format/snapshot_format/test_util.go
new file mode 100644
index 00000000000..3993c1648b7
--- /dev/null
+++ b/cl/persistence/format/snapshot_format/test_util.go
@@ -0,0 +1,11 @@
+package snapshot_format
+
+import "github.com/ledgerwatch/erigon/cl/cltypes"
+
+type MockBlockReader struct {
+ Block *cltypes.Eth1Block
+}
+
+func (t *MockBlockReader) BlockByNumber(number uint64) (*cltypes.Eth1Block, error) {
+ return t.Block, nil
+}
diff --git a/cl/persistence/interface.go b/cl/persistence/interface.go
index 3a4c22d6907..56b7be8064b 100644
--- a/cl/persistence/interface.go
+++ b/cl/persistence/interface.go
@@ -2,21 +2,22 @@ package persistence
import (
"context"
- "database/sql"
"io"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/sentinel/peers"
)
type BlockSource interface {
- GetRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) ([]*peers.PeeredObject[*cltypes.SignedBeaconBlock], error)
- PurgeRange(tx *sql.Tx, ctx context.Context, from uint64, count uint64) error
+ GetRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error)
+ PurgeRange(ctx context.Context, tx kv.RwTx, from uint64, count uint64) error
+ GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error)
}
type BeaconChainWriter interface {
- WriteBlock(tx *sql.Tx, ctx context.Context, block *cltypes.SignedBeaconBlock, canonical bool) error
+ WriteBlock(ctx context.Context, tx kv.RwTx, block *cltypes.SignedBeaconBlock, canonical bool) error
}
type RawBeaconBlockChain interface {
diff --git a/cl/persistence/snapshot_format/attestations.go b/cl/persistence/snapshot_format/attestations.go
deleted file mode 100644
index f5305195675..00000000000
--- a/cl/persistence/snapshot_format/attestations.go
+++ /dev/null
@@ -1,194 +0,0 @@
-package snapshot_format
-
-// TODO: Make this actually usable.
-// func EncodeAttestationsForStorage(attestations *solid.ListSSZ[*solid.Attestation], buf []byte) []byte {
-// if attestations.Len() == 0 {
-// return nil
-// }
-// encoded := buf
-
-// referencedAttestations := []solid.AttestationData{
-// nil, // Full diff
-// }
-// // Pre-allocate some memory.
-// attestations.Range(func(_ int, attestation *solid.Attestation, _ int) bool {
-// data := attestation.AttestantionData()
-// sig := attestation.Signature()
-// // Encode attestation metadata
-// // Also we need to keep track of aggregation bits size manually.
-// encoded = append(encoded, byte(len(attestation.AggregationBits())))
-// encoded = append(encoded, attestation.AggregationBits()...)
-// // Encode signature
-// encoded = append(encoded, sig[:]...)
-// // Encode attestation body
-// var bestEncoding []byte
-// bestEncodingIndex := 0
-// // try all non-repeating attestations.
-// for i, att := range referencedAttestations {
-// currentEncoding := encodeAttestationDataForStorage(attestation.AttestantionData(), att)
-// // check if we find a better fit.
-// if len(bestEncoding) == 0 || len(bestEncoding) > len(currentEncoding) {
-// bestEncodingIndex = i
-// bestEncoding = currentEncoding
-// // cannot get lower than 1, so accept it as best.
-// if len(bestEncoding) == 1 {
-// break
-// }
-// }
-// }
-// // If it is not repeated then save it.
-// if len(bestEncoding) != 1 {
-// referencedAttestations = append(referencedAttestations, data)
-// }
-// encoded = append(encoded, byte(bestEncodingIndex))
-// encoded = append(encoded, bestEncoding...)
-// // Encode attester index
-// encoded = append(encoded, data.RawValidatorIndex()...)
-// return true
-// })
-// return encoded
-// }
-
-// // EncodeAttestationsDataForStorage encodes attestation data and compress everything by defaultData.
-// func encodeAttestationDataForStorage(data solid.AttestationData, defaultData solid.AttestationData) []byte {
-// fieldSet := byte(0)
-// var ret []byte
-
-// numBuffer := make([]byte, 4)
-
-// // Encode in slot
-// if defaultData == nil || data.Slot() != defaultData.Slot() {
-// slotBytes := make([]byte, 4)
-// binary.LittleEndian.PutUint32(slotBytes, uint32(data.Slot()))
-// ret = append(ret, slotBytes...)
-// } else {
-// fieldSet = 1
-// }
-
-// if defaultData == nil || !bytes.Equal(data.RawBeaconBlockRoot(), defaultData.RawBeaconBlockRoot()) {
-// root := data.BeaconBlockRoot()
-// ret = append(ret, root[:]...)
-// } else {
-// fieldSet |= 2
-// }
-
-// if defaultData == nil || data.Source().Epoch() != defaultData.Source().Epoch() {
-// binary.LittleEndian.PutUint32(numBuffer, uint32(data.Source().Epoch()))
-// ret = append(ret, numBuffer...)
-// } else {
-// fieldSet |= 4
-// }
-
-// if defaultData == nil || !bytes.Equal(data.Source().RawBlockRoot(), defaultData.Source().RawBlockRoot()) {
-// ret = append(ret, data.Source().RawBlockRoot()...)
-// } else {
-// fieldSet |= 8
-// }
-
-// if defaultData == nil || data.Target().Epoch() != defaultData.Target().Epoch() {
-// binary.LittleEndian.PutUint32(numBuffer, uint32(data.Target().Epoch()))
-
-// ret = append(ret, numBuffer...)
-// } else {
-// fieldSet |= 16
-// }
-
-// if defaultData == nil || !bytes.Equal(data.Target().RawBlockRoot(), defaultData.Target().RawBlockRoot()) {
-// root := data.Target().BlockRoot()
-// ret = append(ret, root[:]...)
-// } else {
-// fieldSet |= 32
-// }
-// return append([]byte{fieldSet}, ret...)
-// }
-
-// func DecodeAttestationsForStorage(buf []byte, out []byte) error {
-// var signature libcommon.Bytes96
-
-// if len(buf) == 0 {
-// return nil
-// }
-
-// referencedAttestations := []solid.AttestationData{
-// nil, // Full diff
-// }
-// // current position is how much we read.
-// pos := 0
-// for pos != len(buf) {
-// attestationData := solid.NewAttestationData()
-// // Decode aggregations bits
-// aggrBitsLength := int(buf[pos])
-// pos++
-// aggrBits := buf[pos : pos+aggrBitsLength]
-// pos += aggrBitsLength
-// // Decode signature
-// copy(signature[:], buf[pos:])
-// pos += 96
-// // decode attestation body
-// // 1) read comparison index
-// comparisonIndex := int(buf[pos])
-// pos++
-// n := decodeAttestationDataForStorage(buf[pos:], referencedAttestations[comparisonIndex], attestationData)
-// // field set is not null, so we need to remember it.
-// if n != 1 {
-// referencedAttestations = append(referencedAttestations, attestationData)
-// }
-// pos += n
-// // decode attester index
-// attestationData.SetValidatorIndexWithRawBytes(buf[pos:])
-// pos += 8
-// attestations.Append(solid.NewAttestionFromParameters(aggrBits, attestationData, signature))
-// }
-// return nil
-// }
-
-// // DecodeAttestationDataForStorage decodes attestation data and decompress everything by defaultData.
-// func decodeAttestationDataForStorage(buf []byte, defaultData solid.AttestationData, target solid.AttestationData) (n int) {
-// if len(buf) == 0 {
-// return
-// }
-// fieldSet := buf[0]
-// n++
-// if fieldSet&1 > 0 {
-// target.SetSlotWithRawBytes(defaultData.RawSlot())
-// } else {
-// target.SetSlot(uint64(binary.LittleEndian.Uint32(buf[n:])))
-// n += 4
-// }
-
-// if fieldSet&2 > 0 {
-// target.SetBeaconBlockRootWithRawBytes(defaultData.RawBeaconBlockRoot())
-// } else {
-// target.SetBeaconBlockRootWithRawBytes(buf[n : n+32])
-// n += 32
-// }
-
-// if fieldSet&4 > 0 {
-// target.Source().SetRawEpoch(defaultData.Source().RawEpoch())
-// } else {
-// target.Source().SetEpoch(uint64(binary.LittleEndian.Uint32(buf[n:])))
-// n += 4
-// }
-
-// if fieldSet&8 > 0 {
-// target.Source().SetRawBlockRoot(defaultData.Source().RawBlockRoot())
-// } else {
-// target.Source().SetRawBlockRoot(buf[n : n+32])
-// n += 32
-// }
-
-// if fieldSet&16 > 0 {
-// target.Target().SetRawEpoch(defaultData.Target().RawEpoch())
-// } else {
-// target.Target().SetEpoch(uint64(binary.LittleEndian.Uint32(buf[n:])))
-// n += 4
-// }
-
-// if fieldSet&32 > 0 {
-// target.Target().SetRawBlockRoot(defaultData.Target().RawBlockRoot())
-// } else {
-// target.Target().SetRawBlockRoot(buf[n : n+32])
-// n += 32
-// }
-// return
-// }
diff --git a/cl/persistence/snapshot_format/attestations_test.go b/cl/persistence/snapshot_format/attestations_test.go
deleted file mode 100644
index abcafdb713e..00000000000
--- a/cl/persistence/snapshot_format/attestations_test.go
+++ /dev/null
@@ -1,40 +0,0 @@
-package snapshot_format_test
-
-// func TestAttestationsEncoding(t *testing.T) {
-// attVec := solid.NewDynamicListSSZ[*solid.Attestation](256)
-// for i := 0; i < 256; i++ {
-// attVec.Append(solid.NewAttestionFromParameters(
-// []byte{byte(i)},
-// solid.NewAttestionDataFromParameters(
-// uint64(i*i*i),
-// uint64(i*i*i),
-// [32]byte{},
-// solid.NewCheckpointFromParameters([32]byte{45, 67}, 219),
-// solid.NewCheckpointFromParameters([32]byte{67, 98}, 219),
-// ), libcommon.Bytes96{byte(i)}))
-// }
-// plain, err := attVec.EncodeSSZ(nil)
-// require.NoError(t, err)
-
-// compacted := format.EncodeAttestationsForStorage(attVec, nil)
-// require.Less(t, len(compacted), len(plain))
-
-// // Now-decode it back.
-// resAttVec := solid.NewDynamicListSSZ[*solid.Attestation](256)
-// require.NoError(t, format.DecodeAttestationsForStorage(compacted, resAttVec))
-
-// require.Equal(t, attVec.Len(), resAttVec.Len())
-
-// for i := 0; i < 256; i++ {
-// require.Equal(t, attVec.Get(i).Signature(), resAttVec.Get(i).Signature())
-// require.Equal(t, attVec.Get(i).AggregationBits(), resAttVec.Get(i).AggregationBits())
-
-// require.Equal(t, attVec.Get(i).AttestantionData().Slot(), resAttVec.Get(i).AttestantionData().Slot())
-// require.Equal(t, attVec.Get(i).AttestantionData().ValidatorIndex(), resAttVec.Get(i).AttestantionData().ValidatorIndex())
-// require.Equal(t, attVec.Get(i).AttestantionData().BeaconBlockRoot(), resAttVec.Get(i).AttestantionData().BeaconBlockRoot())
-// require.Equal(t, attVec.Get(i).AttestantionData().Source(), resAttVec.Get(i).AttestantionData().Source())
-// require.Equal(t, attVec.Get(i).AttestantionData().Target(), resAttVec.Get(i).AttestantionData().Target())
-
-// require.Equal(t, attVec.Get(i), resAttVec.Get(i))
-// }
-// }
diff --git a/cl/persistence/snapshot_format/chunks.go b/cl/persistence/snapshot_format/chunks.go
deleted file mode 100644
index bf9960f4cda..00000000000
--- a/cl/persistence/snapshot_format/chunks.go
+++ /dev/null
@@ -1,61 +0,0 @@
-package snapshot_format
-
-import (
- "encoding/binary"
- "fmt"
- "io"
-
- "github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/cl/utils"
-)
-
-type dataType int
-
-const (
- chunkDataType dataType = 0
- pointerDataType dataType = 1
-)
-
-// writeChunk writes a chunk to the writer.
-func writeChunk(w io.Writer, buf []byte, t dataType, snappy bool) error {
- if snappy {
- buf = utils.CompressSnappy(buf)
- }
- // prefix is type of chunk + length of chunk
- prefix := make([]byte, 8)
- binary.BigEndian.PutUint64(prefix, uint64(len(buf)))
- prefix[0] = byte(t)
- if _, err := w.Write(prefix); err != nil {
- return err
- }
- if _, err := w.Write(buf); err != nil {
- return err
- }
- return nil
-}
-
-func readChunk(r io.Reader, snappy bool) (buf []byte, t dataType, err error) {
- prefix := make([]byte, 8)
- if _, err := r.Read(prefix); err != nil {
- return nil, dataType(0), err
- }
- t = dataType(prefix[0])
- prefix[0] = 0
- fmt.Println(binary.BigEndian.Uint64(prefix))
- buf = make([]byte, binary.BigEndian.Uint64(prefix))
- if _, err := r.Read(buf); err != nil {
- return nil, t, err
- }
- if snappy {
- buf, err = utils.DecompressSnappy(buf)
- }
- return buf, t, err
-}
-
-func readMetadataForBlock(r io.Reader) (clparams.StateVersion, error) {
- b := []byte{0}
- if _, err := r.Read(b); err != nil {
- return 0, err
- }
- return clparams.StateVersion(b[0]), nil
-}
diff --git a/cl/persistence/sql_migrations/migrations.go b/cl/persistence/sql_migrations/migrations.go
deleted file mode 100644
index f11f2098cc7..00000000000
--- a/cl/persistence/sql_migrations/migrations.go
+++ /dev/null
@@ -1,57 +0,0 @@
-package sql_migrations
-
-import (
- "context"
- "database/sql"
- "errors"
-)
-
-var migrations = []string{
- `CREATE TABLE IF NOT EXISTS beacon_indicies (
- beacon_block_root BLOB NOT NULL CHECK(length(beacon_block_root) = 32),
- slot INTEGER NOT NULL,
- proposer_index INTEGER NOT NULL,
- state_root BLOB NOT NULL CHECK(length(state_root) = 32),
- parent_block_root BLOB NOT NULL CHECK(length(parent_block_root) = 32),
- canonical INTEGER NOT NULL DEFAULT 0, -- 0 for false, 1 for true
- body_root BLOB NOT NULL CHECK(length(state_root) = 32),
- signature BLOB NOT NULL CHECK(length(signature) = 96),
- PRIMARY KEY (beacon_block_root)
- );`,
- `CREATE INDEX idx_slot ON beacon_indicies (slot);`,
- `CREATE INDEX idx_state_root ON beacon_indicies (state_root);`,
- `CREATE INDEX idx_parent_block_root ON beacon_indicies (parent_block_root);`,
- `CREATE TABLE IF NOT EXISTS data_config (
- prune_depth INTEGER NOT NULL
- );`,
-}
-
-func ApplyMigrations(ctx context.Context, tx *sql.Tx) error {
- if _, err := tx.ExecContext(ctx, "CREATE TABLE IF NOT EXISTS schema_version (version INTEGER NOT NULL);"); err != nil {
- return err
- }
- // Get current schema version
- var currentVersion int
- err := tx.QueryRow("SELECT version FROM schema_version").Scan(¤tVersion)
- if errors.Is(err, sql.ErrNoRows) {
- currentVersion = -1
- } else if err != nil {
- return err
- }
-
- // Apply missing migrations
- for i := currentVersion + 1; i < len(migrations); i++ {
- _, err = tx.Exec(migrations[i])
- if err != nil {
- return err
- }
-
- // Update schema version
- _, err = tx.Exec("UPDATE schema_version SET version = ?", i)
- if err != nil {
- return err
- }
- }
-
- return nil
-}
diff --git a/cl/persistence/sql_migrations/migrations_test.go b/cl/persistence/sql_migrations/migrations_test.go
deleted file mode 100644
index 50989a1fc79..00000000000
--- a/cl/persistence/sql_migrations/migrations_test.go
+++ /dev/null
@@ -1,40 +0,0 @@
-package sql_migrations
-
-import (
- "context"
- "database/sql"
- "testing"
-
- _ "modernc.org/sqlite"
-)
-
-func TestApplyMigrations(t *testing.T) {
- // Open an in-memory SQLite database for testing
- db, err := sql.Open("sqlite", ":memory:")
- if err != nil {
- t.Fatalf("Failed to open database: %v", err)
- }
- defer db.Close()
-
- // Start a transaction for testing
- tx, err := db.Begin()
- if err != nil {
- t.Fatalf("Failed to start transaction: %v", err)
- }
- defer tx.Rollback()
-
- // Call ApplyMigrations with the test transaction
- err = ApplyMigrations(context.Background(), tx)
- if err != nil {
- t.Fatalf("ApplyMigrations failed: %v", err)
- }
-
- // You can add more tests here, such as verifying if the schema_version table is created and populated correctly,
- // or checking if the beacon_indices table and index are created correctly.
-
- // Commit the transaction (or rollback, if you're just testing)
- err = tx.Commit()
- if err != nil {
- t.Fatalf("Failed to commit transaction: %v", err)
- }
-}
diff --git a/cl/phase1/core/rawdb/accessors.go b/cl/phase1/core/rawdb/accessors.go
deleted file mode 100644
index 337686c711d..00000000000
--- a/cl/phase1/core/rawdb/accessors.go
+++ /dev/null
@@ -1,101 +0,0 @@
-package rawdb
-
-import (
- "encoding/binary"
- "fmt"
-
- "github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/cl/phase1/core/state"
-
- libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon-lib/common/length"
- "github.com/ledgerwatch/erigon-lib/kv"
-
- "github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/utils"
-)
-
-func EncodeNumber(n uint64) []byte {
- ret := make([]byte, 4)
- binary.BigEndian.PutUint32(ret, uint32(n))
- return ret
-}
-
-// WriteBeaconState writes beacon state for specific block to database.
-func WriteBeaconState(tx kv.Putter, state *state.CachingBeaconState) error {
- data, err := utils.EncodeSSZSnappy(state)
- if err != nil {
- return err
- }
-
- return tx.Put(kv.BeaconState, EncodeNumber(state.Slot()), data)
-}
-
-func WriteBeaconBlock(tx kv.RwTx, signedBlock *cltypes.SignedBeaconBlock) error {
- block := signedBlock.Block
-
- blockRoot, err := block.HashSSZ()
- if err != nil {
- return err
- }
- // database key is is [slot + block root]
- slotBytes := EncodeNumber(block.Slot)
- key := append(slotBytes, blockRoot[:]...)
- value, err := signedBlock.EncodeSSZ(nil)
- if err != nil {
- return err
- }
-
- // Write block hashes
- // We write the block indexing
- if err := tx.Put(kv.RootSlotIndex, blockRoot[:], slotBytes); err != nil {
- return err
- }
- if err := tx.Put(kv.RootSlotIndex, block.StateRoot[:], key); err != nil {
- return err
- }
- // Finally write the beacon block
- return tx.Put(kv.BeaconBlocks, key, utils.CompressSnappy(value))
-}
-
-func ReadBeaconBlock(tx kv.RwTx, blockRoot libcommon.Hash, slot uint64, version clparams.StateVersion) (*cltypes.SignedBeaconBlock, uint64, libcommon.Hash, error) {
- encodedBeaconBlock, err := tx.GetOne(kv.BeaconBlocks, append(EncodeNumber(slot), blockRoot[:]...))
- if err != nil {
- return nil, 0, libcommon.Hash{}, err
- }
- if len(encodedBeaconBlock) == 0 {
- return nil, 0, libcommon.Hash{}, nil
- }
- if encodedBeaconBlock, err = utils.DecompressSnappy(encodedBeaconBlock); err != nil {
- return nil, 0, libcommon.Hash{}, err
- }
- signedBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
- if err := signedBlock.DecodeSSZ(encodedBeaconBlock, int(version)); err != nil {
- return nil, 0, libcommon.Hash{}, err
- }
- var eth1Number uint64
- var eth1Hash libcommon.Hash
- if signedBlock.Block.Body.ExecutionPayload != nil {
- eth1Number = signedBlock.Block.Body.ExecutionPayload.BlockNumber
- eth1Hash = signedBlock.Block.Body.ExecutionPayload.BlockHash
- }
- return signedBlock, eth1Number, eth1Hash, err
-}
-
-func WriteFinalizedBlockRoot(tx kv.Putter, slot uint64, blockRoot libcommon.Hash) error {
- return tx.Put(kv.FinalizedBlockRoots, EncodeNumber(slot), blockRoot[:])
-}
-
-func ReadFinalizedBlockRoot(tx kv.Getter, slot uint64) (libcommon.Hash, error) {
- root, err := tx.GetOne(kv.FinalizedBlockRoots, EncodeNumber(slot))
- if err != nil {
- return libcommon.Hash{}, err
- }
- if len(root) == 0 {
- return libcommon.Hash{}, nil
- }
- if len(root) != length.Hash {
- return libcommon.Hash{}, fmt.Errorf("read block root with mismatching length")
- }
- return libcommon.BytesToHash(root), nil
-}
diff --git a/cl/phase1/core/rawdb/accessors_test.go b/cl/phase1/core/rawdb/accessors_test.go
deleted file mode 100644
index e15907f49a2..00000000000
--- a/cl/phase1/core/rawdb/accessors_test.go
+++ /dev/null
@@ -1,46 +0,0 @@
-package rawdb_test
-
-import (
- "testing"
-
- "github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb"
-
- libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon-lib/kv/memdb"
- "github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/stretchr/testify/require"
-)
-
-func TestBeaconBlock(t *testing.T) {
- _, tx := memdb.NewTestTx(t)
- signedBeaconBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
- require.NoError(t, signedBeaconBlock.DecodeSSZ(rawdb.SSZTestBeaconBlock, int(clparams.BellatrixVersion)))
-
- root, err := signedBeaconBlock.Block.HashSSZ()
- require.NoError(t, err)
-
- require.NoError(t, rawdb.WriteBeaconBlock(tx, signedBeaconBlock))
- newBlock, _, _, err := rawdb.ReadBeaconBlock(tx, root, signedBeaconBlock.Block.Slot, clparams.BellatrixVersion)
- require.NoError(t, err)
- newRoot, err := newBlock.HashSSZ()
- require.NoError(t, err)
- root, err = signedBeaconBlock.HashSSZ()
- require.NoError(t, err)
-
- require.Equal(t, root, newRoot)
-}
-
-func TestFinalizedBlockRoot(t *testing.T) {
- _, tx := memdb.NewTestTx(t)
- signedBeaconBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
- require.NoError(t, signedBeaconBlock.DecodeSSZ(rawdb.SSZTestBeaconBlock, int(clparams.BellatrixVersion)))
-
- root, err := signedBeaconBlock.Block.HashSSZ()
- require.NoError(t, err)
-
- require.NoError(t, rawdb.WriteFinalizedBlockRoot(tx, signedBeaconBlock.Block.Slot, root))
- newRoot, err := rawdb.ReadFinalizedBlockRoot(tx, signedBeaconBlock.Block.Slot)
- require.NoError(t, err)
- require.Equal(t, libcommon.BytesToHash(root[:]), newRoot)
-}
diff --git a/cl/phase1/core/rawdb/config.go b/cl/phase1/core/rawdb/config.go
index 4346c81ce85..9c5389f22c5 100644
--- a/cl/phase1/core/rawdb/config.go
+++ b/cl/phase1/core/rawdb/config.go
@@ -2,9 +2,9 @@ package rawdb
import (
"encoding/json"
+ "math"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/math"
)
type BeaconDataConfig struct {
diff --git a/cl/phase1/core/rawdb/config_test.go b/cl/phase1/core/rawdb/config_test.go
deleted file mode 100644
index 53b733d2e10..00000000000
--- a/cl/phase1/core/rawdb/config_test.go
+++ /dev/null
@@ -1,19 +0,0 @@
-package rawdb_test
-
-import (
- "testing"
-
- "github.com/ledgerwatch/erigon-lib/kv/memdb"
- "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb"
- "github.com/stretchr/testify/require"
-)
-
-func TestBeaconDataConfig(t *testing.T) {
- _, tx := memdb.NewTestTx(t)
- cfg := new(rawdb.BeaconDataConfig)
- require.NoError(t, rawdb.WriteBeaconDataConfig(tx, cfg))
-
- newCfg, err := rawdb.ReadBeaconDataConfig(tx)
- require.NoError(t, err)
- require.Equal(t, cfg, newCfg)
-}
diff --git a/cl/phase1/core/rawdb/test_utils.go b/cl/phase1/core/rawdb/test_utils.go
deleted file mode 100644
index a07b7d2ad64..00000000000
--- a/cl/phase1/core/rawdb/test_utils.go
+++ /dev/null
@@ -1,5 +0,0 @@
-package rawdb
-
-import "encoding/hex"
-
-var SSZTestBeaconBlock, _ = hex.DecodeString("640000008997ec6da35c366e19412d96edbab8db862634d849f95bd57ad25e3faa292a8aebfad0d21291dfbcee6178ec3b684748177e04993b43ff95876e4c35370993aec8a20d10c4de8e8ca070baa2772ea60ac1097100f2bdab45dc7fbf1102965f24a1a64f00000000006a300400000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a6abe003b99a9be225b53dc3bff875315b2688b7e0c28fadfe98569e2fd6cc2c54000000b598bdc18bf593e4a2ad7431abfea5af242b3f890d06bafeb059594ed517bdb4e26cc2e81b840593ed1f9a382fcc730d18875f91387224d28a7a6ce0759ac02de90466b8e4cc6f992685cb3c181c348d4847458d2f91d9c8804d01d7abc32aa360e416dc4227ae2f4635a924d331972550d7c2f5d0897ef4f6bee0b1a390e94bff7b070000000000a4aa98e1c809da071f818e57153481270d5aa048a19be4b6c9d4050bad9bdaee00000000000000000000000000000000000000000000000000000000000000008001000080010000800100008084000080840000fff7ffff7ffeffffefffff7ffffffffffffffffffdffffffffffffffffffffffdffffffff7ffffbdffffff7ffeffffffff7ffffffffffffdfffffffcffff7fffac27369b928b90b18264905a3e2c0468dafb620020273f1c2f6553cdbc3feced2c972f9d72bafe0dbcc396e1e87eb4e70f574cd95ff0dcbab8d2b5fc7645c1bed06df6b17a9fc8123450540905c16ed62b54769c906189a16d8275961b937b808084000000020000020300000404000006050000080600000a0700000c0800000e090000100a0000120b0000140c0000160d0000180e00001a0f00001c1000001e11000020120000221300002414000026150000281600002a1700002c1800002e190000301a0000321b0000341c0000361d0000381e00003a1f00003c2000003e21000040220000422300004424000046250000482600004a2700004c2800004e290000502a0000522b0000542c0000562d0000582e00005a2f00005c3000005e31000060320000623300006434000066350000683600006a3700006c3800006e390000703a0000723b0000743c0000763d0000783e00007a3f00007c4000007e41000080420000824300008444000086450000884600008a4700008c4800008e490000904a0000924b0000944c0000964d0000984e00009a4f00009c5000009e510000a0520000a2530000a4540000a6550000a8560000aa570000ac580000ae590000b05a0000b25b0000b45c0000b65d0000b85e0000ba5f0000bc600000be610000c0620000c2630000c4640000c6650000c8660000ca670000cc680000ce690000d06a0000d26b0000d46c0000d66d0000d86e0000da6f0000dc700000de710000e0720000e2730000e4740000e6750000e8760000ea770000ec780000ee790000f07a0000f27b0000f47c0000f67d0000f87e0000fa7f0000fc800000fe810000e4000000a0a64f000000000000000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95875df8719ed61f0200308a7311fce34ef538be482af723159dcca5890e5f9a5bb945440c73b0525ce7a729536b2f922314438d6df8dfd0f634c6a143957f16f0052f11fbe72c1d07afa46dcfa9dd03cb6d3b724ee4e0daad46cf30b18f8b9afc000000000800000000000000000000000000000000000000000000000002e4000000a0a64f00000000001a000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b573262f6cb537f37a314b640afd41d1083107b5a7b78fde6079855895756fd1351d6b2642290cd195339cfbc00f903d0467287786535adf2eb46124f5e413c5b052b140ff6fa1c7e260a2b9937df3c5be1e69166644f3821794ad0c890b62ad000000000000000000000000000000400000000000000000000000000004e4000000a0a64f000000000028000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a4af5d4876a6b953405acdaa59032be3fd497554b639b84c568209caa31e167c450cfcc14afbbc6fe5a319fcabf6dc617bc4bf5eb1fa2b8a873d00322eb3985cfcad1a8be168ce289ca18f528228a2170dce8a367c9e199869b33661c453d09000000000200000004000000000000000000000008000020000000000004e4000000a0a64f000000000005000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b7eb4904203273879633c0bb35371be4d7eb0a281d45fb1cfbbd9aa81ebabda909abf8776a3eb36984de66b943d530fd0779b80313f2bc6c62c74b4317a4018a09f45037d614720c49525b702fa669049c0c88f4ff121a53f42e5f71a84b9876000000040000000000000000000000000000000000000000000400000004e4000000a0a64f00000000000200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea46889c0eeae804d10a5c5c521175575559e9543b5afff3d1986c79a78b1cbf0af4638ce1a7ab8bbef2871664cb69a79b6bd189b528884c14fe125318376989f033655b7329cdd817a8ae67fdf8e4f58f8496b27df726acc60d5f06c975d4a0cf9a9000000000000000020000000000000000000000000000000000000000004e4000000a0a64f000000000026000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b23be2e6c71204f845b977c8125c8902812d4641eb2f7b57feff7c6104bf96d7957d3d230fb174bb8ef694784479b3450f97ee7c8c4178a3803ade1cbd03884ab969da4f5bab4c3040021a1c82cbdafe93e1e51aa5e3d457e5f27f22dbb694c5000000000000000000000000000000080000000000000000000000000002e4000000a0a64f000000000009000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a023f084ebbea1eb12727826526571e6d218c3a01224522c6810aa9ceba369313c2380fa8d4dad6cdba3b9d62b87518b0ef8790f6db880631441d77209e8a6273c29e0916c6522e7e94d0dcac906ca88a038bd196daae3378609b7cc2557755f000000000000000000000000000000000000000000000000000020000004e4000000a0a64f00000000003e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95abe85979700c10a96d494ed3acb8172315b8acd178eaf89ed25ab5794df87214847b4d4e6aa0f56e51d570044e607d7f134064d2c207b56bf6caab51f56d33b471ec38caa9a16c3fc884c1edcb6beb22668b163e26296e7e1e6ca67ae6ea2dcf000000000000000400000000000000000000000000000000000000000004e4000000a0a64f00000000002a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a3a1d96721d35071f312ab92b72c1adbe121cfcd428c994f2ce18c4282daf20bd503343084ace6c82e27e4767e58eb6d15dfecf57c2f362e15574d9dc924845bac401b5631793e41b6d904f125848a60a6893e1c6f1f28918ee4b3c3ca06df7dffffffffffffffffffffffffffffffffffffffffbfffffffbffffbffff03e4000000a0a64f00000000001c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b959795c634dc6de7b742ee91abf7d62ecd03fc3d3baf2f0d7bc556c2aac3f034e4a0f5c17f51121cd7c1466526fdd3b642091f2549325ce20ace30b1ad07ec12ad2c460c9e47ffedb1d70e9329e84764204fd761d99f7526ae4f366f3612dc3276000000000000000000000000000000000000000000000000000000000404e4000000a0a64f000000000003000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a79a807e5f799bb4b03c108824a2b0a1af7aa79a3a58e42d0bd4201212892303225452f7c756c632ddd47c77f6503411185ba3d5c42483e2c0420e734efd61e8322c49e086beb113e7021f8551463eb26666e19f60b4e691d23d80d3d9cc8883ffffffffffffffffffffffffffffffffffffffffffffffffffdfffffff07e4000000a0a64f00000000000d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509650be875d135eaa553cffe50339d9acd5f2b6172d76e0f8432a31d9b0960fa531c91bf2753428fdb3269750a49cc6350ccacc3ff64ec263dc0c560bb42806ddbc70bd4b4e0e3de23c4ffc4cac333603900571d8e07bbc724c57a649f86a3073fffffffffffffffffffffffffffffffffffffffffffffffffff7ffffff07e4000000a0a64f00000000002e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505088a03032a53c1f459820e2a083a5eb97eb9b488bfe4314cc93f38f5916f1b4bb8f46149dc2fadf35a60998534f859e7310380287bc9726b5a34e573732870d264fe8f4e68095118facfbdf8482700dc4ee5131b61ed6981977483119561eb67effffffffffffffffffffffff7fffffffffefffffffffffffffffffffff03e4000000a0a64f00000000000c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95838222efebbc42680175d7dc36167a2eba30fa6787805c15d11e5bbad5e9c70bcc2267a64af891d41586dbfe245af7300eed0f945dc35b87a46400628f207edfa28122400d9cd86cf3c2b90fb61534f18a4a681a6c52d0a3d0c01edefbf27435000000000000000000000000080000000080000000000000000000000002e4000000a0a64f000000000007000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508ace36bcdfaa188584e4203280d40e1712459de543c1ac23753a001b2223764e3fe0ea9d92f077af959627750752df4a1052544b89063bbb77c4b03f9c6b24f7e145fcb5d491d2ce75f6ee890dc87187a8e4e87c5644e172d3c6d13c2f57a9a2fffffffffffffffffffffffffffffffffffffffffdffffffffffffffff07e4000000a0a64f000000000015000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95959f6691705effb2699d934a38fe6e1cd128ed424180af8cbf2a526b8837ae6bc40d283df56b6c3dcfed0d7c948801d61281187cf186b8c01398b1e45bd2ab7b1b73a0d852e5e5c9ff81413e08865c2676bdb5df952eb7f8c2a7c475646c88c1000000000000000000400000000000000200000000000000000000000002e4000000a0a64f000000000012000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508483d231734cb64ebbe0bd06598ac78176498ad400e39695f6fd82529d2f60c45a6628cce1453b10674802851ed009c418999ebf96d52bbb8dc646c462f587c7b5656defef9da4023a4485f08c7a9c812e95d86a6aa953d580b9a1207ee2e875ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000024000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958dfadf268ec42892891bc9c5ab4a7611841370361c93b53e56820dd921e8c673f53053c36163b292fc2a8f0d93870e420aab6631fe4b32a9e77a3738e43f1decc3d8e60134650912ef945e57cb4edb71e1a4e52e365445d1b1ba916d2344d513000040000000000000000000000100000000000000000000000000000004e4000000a0a64f000000000020000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958bd9dee96f63649e83426243d04753fbe8aa2200b8a4e1e9e3700a358372d7473c0bc0276f307304cd7a4988a2ddbafa05f7518bfa4cb9aaecb1f0a5af0ff0496d537d285b089b3a8daa486ad7feb0e155bb2b5abd2b3c83fff764e1ad2f7fa3000008000000000000000000000004000000000000000000000000000004e4000000a0a64f00000000002d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a1ce830db27b65b020e10687b068159c07fe4eb5a6de0759e8c4c1f1e6356aa4d12a7b17c3c2d24f3d1ac7aec1561676104144512f898601fcfa2c7dc950396abdc451d961cd3ac525251c678c70b5a4e42bf1a10a9c84e0181679cc041d52baefffffffffffffffffffffefffffffffffffffffffffffffffffeffeff07e4000000a0a64f00000000003e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050979b55315793213c50288893b4f68f75b5b5626b2796bc63aefeb76d498b97386415d6a34921cf44994dedd94ca666ee1367be1137fe5173a965126a25600114e45dccb763bdfc7eaf170143362e5f15fae2aeeae31e8a0c221ac03426f32e14fffffffffffffffbffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000026000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b532477a111d0650968d8bb8020774a8486c4a99c06a6c21d1d4659e448f49e7f9d8e34c2642949f14d9a91886838b80134d543d84afdcc75aac5dad20543adac6bd1af522c5edbd0753633f490405f4764edd2a14c82f306b7de714ebac592cfffffffffffff7fffffffffffffffff7ffffffffffffffffffffffffff03e4000000a0a64f000000000010000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aadb78375a1d0d427e9a46ee455e2da7097767772dbf000fea5318464642bfa0d46ede7f12b0319140f2a85cdf0aa18a0c7e1f10fbff90627e067647da226005c0ae30199d1b3c06618d10e072dfacbb8221c6f8779dcd5560515332f5ef0e56000004000000000000100001000000000000000000000000000000000004e4000000a0a64f000000000031000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b17c936471f41bfbd9e0cdbe404a8cadb68238b5af5fe1b8cd779584f2246577bbcb4b9357f54f6298ed50c7901c010a0db0a08620bafaa17bfa4c4fed3f2f31ec76930382ac0652ace40ca5e639626d77ede515140f960ce89590da2efb7b01fffffffbfffffffff7ffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000037000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b58fc6b7c31287f87d5d7775cd5c11802ec4a06b9eac20ac20bdbf00acaa2202376f65fa43f463c846655f5d60e2c0a808bde1cfaf35b752798c375d727310b164cd0650c12ae76645c083042ca5f41622b187f722c88f1757ef368fc6ec8b38000000000000000000000000000000000000000000000000000000004002e4000000a0a64f000000000021000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958634cf61889c95553dce98e137f2ca77b164d74ba8dd762e635ada921387feebac5952688e45295f066cdc1ab8da825a080849eaf7eabc0e15a96db7421ff3831094d6e3dacbacb33a227f9c8c7b71250f110a81d0d9ca3152480ba8bbbe3765000000000000000000001000000000000100000000000000000000000004e4000000a0a64f00000000001f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b4bfda9580bdb187e0d9ac26a2a2f1d8e6f4377f31677fd19412ac851f06c8fc73349a4128f95567d6d6f1684663b232101407bd418b5b406a05441acb482555714bf2781a7e13e083070a77e637ddd6b6afb7ae6d5d1ace7e7aafdd1d3e9e45ffffffffffffffffffffff7fffffffffffffffffffffffffffffefffff07e4000000a0a64f000000000016000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508dae08c7aeaa1dc30fe61b200784bc1ad48069639401ec41e0008e72932cf1087c1cb72d1bf94dc7a1bf75e251fbfdcb19e9750648bd8318381b41f12709871160e04ca1d68d5021bd001f70914e310cb819e84e37da3810b12e5bd008d44d46ffffffffffffffffffdfffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000032000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050adf0f48de53445bf20a2dc1076eedbae1de3d99163e21ea0cf42af68e854a1a1feee4ebc92c50869b219cef1ae740fec01319713fd85b3ab98d786da66ffef49178a4c3241bb8bfb3fb99818cd4032d48b7ba35ccdecd3d712d2f547e91b28f2fffdfffffffffffff7ffffffffffffffffffffffffffffffffffffffef07e4000000a0a64f000000000021000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505086a1ec2580636363b8379c1e8980593557a6d198e06c21686242ca4d1f4f505afd3827a043fe8e882eb09ef8aa9dd8560dfa4d8f79d64f4af5ce02bcb47e36e67a7e8118fe39411089b986bf1b60b848d053f17d888f56ee0a307693382c33d2ffffffffffffffffffffeffffffffffffefff7ffffffffffffffffffff07e4000000a0a64f00000000001f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b5a98c9d787279dac92315d997ab18d604c15fa45fcaec2ccacc20251af7de99eb2bfece9e5cb9b1dbab76c853c7544e177f436887dc42641941ebd110e65899455b0ebdc908bcea147e7bc574bb4f88f9399d6b1ddc311dbb4facf0c884c765000000000000000000000080000000000000000000000000000010000004e4000000a0a64f00000000000a000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a12b8e8640dc40e219454db4ba9b0dd8902ae9cd452a6abe20eb641b6a4b2918c78e4f5790acceefe8f964bb190b3da6171ab9c9a885886d791eb926219aadf9b81b6776440673fb1e0f0f2b369c0896bbc72ebfc1cd4a1785716b96d9d1861d000000000000000000000000000000000000000000002000000080000004e4000000a0a64f00000000000e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508171f1987fc4c2efb0fe8fbbab5fabfef44e51daea2cc486a844b0bdf3e027f0470d473d67baea25663c6f4447e3cf4100bb1c832e992e0bd9f79e008ce37062e1bbb74502494a3190610c4dd7048b23bc525031e5543a6b269a1bf9e1eae057ffffffffffffffffffffffffefffffffffffffffffffffffffffffffff07e4000000a0a64f000000000035000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958d893f9b6956345b2fa647157e39ddb72d6ddb74339c045bd6f611c7331d95da0382cd0e0bea2f15cfb7b5f947f41e9905166b917c41623d2e244b8a451c03ade812846f91fd126ccd24524cdc98385d4cf32fed34937dd416629c90f752d8c4000000000000000000000000000000000200000000000000004000000004e4000000a0a64f000000000034000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050825eedd37f5631b1e9bd9fa43115e139cd4a49d87ecded6799dba1bef7c37380dc4b1b4e51c58c4dbbf4dbf4c8071fa6055256945dfd8c7af4cc073336ff4f24bbd573894baabf3ee5c8e13ab84a4341f79aefccaeb6cac00026e7251d3cea91fffffffffffffffffffffbfffffffbffefffffffffffffffffffffffff07e4000000a0a64f00000000000e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b50036908796974cf031b00c2333685ea6a83cb045174add9c27834778d8daec2bbfb7cd9b9ac132e2f02f51ecc0c67916385e2e494ec6958c7d2e5224dad771a9cb8fafef85e504357919f3cce3cef804b38bdc80085cc1869011c66b52ae0f000000000000000000000000100000000000000000000000000000000004e4000000a0a64f00000000001e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a57c511cfa01a350fd0c3d5aa490eca2a398d1190f9d2b081e2cdd6ebedfa03f95aa35f503d4d0f4cbac3a4c1e3251a106c1ec4c57a35ee7b7eda40c6445a347b7f5f24c291b7fa8fd16724a614cc13f85cfa764bc49a02188d63b566c4a2f6e000000000000000000000000000020000000000000000000000000000004e4000000a0a64f000000000029000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9589933d9d9374e1d5ea9c0d146606491d110e85e2d48ca69089e312533d36dc9f7ef99beb21a62221edaf62714bddef210363477f25aabb24b41565e283f6ed5175a661382a950e4761b59ea5821391b5007eadfb64e9f4e03b2a4bc062f440ea000000000000200000000000000000000000000000000000000000000005e4000000a0a64f000000000017000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505089ec7867a679aa96c850f5d966343835689c894ee5e233769f48931b1cf1d1833a9c433bc49ce2bfa93137d8fa09029911c142b3067deb751947d3185b4d5021594e20c549373241d917c21faa9d467825d77a75484d8ba031d01a294ae5ae6cfffffffffffffbfffffefffffffffffffff7ffffffffffffffbfffffff07e4000000a0a64f00000000002b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b103737a916be450cdba6c4663910cc717b779e5e0e76a09515768ff910176a2368a86a228609c9615961eb647b1c3690b3f64f5e3e61adcc4ab0b031d5f267f768df2e133a500eff0d2b3f33decfd58b9fb33f28d943cb6098d3044d1d37905100000004000000000000000000000000000000000000000080000000004e4000000a0a64f00000000001a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a25f5f85c9e7903585a5dbc4eefaf42880ca8b64d64f1e13c5c50d9ab44481cc2ea21535f8c869555ec57771aec53e01162f9cc901e76335fa5cc79c0473a5c93f2bacea42963b11aa50c965af41deaf5e78cf471464969118174945addf347affffffffffffffffffffffffffffedbfffffffffffffffbdffffffffff07e4000000a0a64f000000000000000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505096c0109a2a6f5a46229df912a122e39844feb7e3d864083fb51b3192283c21fc87e2a1271ae01292eeaa0686ca0a2570074e301217c7622373149233097c4ef77c2d12752048750da3375f944af7eb4f6235181529e7640144bfa3d795fc998efffffffff7ffffffffffffffffbfffffffffffffffffffffffffffffff03e4000000a0a64f00000000001b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b359bc97259aa32a3b5293ffc65fc9c97e38ad07edb1293e556059a5698562b18b9c494276e531f8b6aa5c38817397b90b8e43e6911bb078d6a6dec70b0f32f1e5be7bb3a339edc4a5b1f1de33428a406fbb914ad79a20238bf806f675958e27000000000000000000000000008000000000000000000000000000000804e4000000a0a64f000000000017000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95add4cf6397f8aceea0bffcc81e71b196f0509c0641c965eb0e036abb2837f66071ea443f24675ef0409143f616c5e24009e87c737d6a58b675dedb1507b1618cacc96f8e541c46cb239aa07592e65546f9a06ed6da52d4702c1d65d9a4de7863000000000000000000010000000000000000000000000000000000000004e4000000a0a64f00000000003f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050afc03bbda16a4596e429369e3b4d341f89b361fb0a06f4da0d7737f4f766e826290c5119012384bb7a9404b1efa8a0310beecc203e85cc8f340e02b10be081522c3f89688503519a7cd28bf942731d5b4c90f0a28dbf19106a43e9f5498a4841fffffffffffffffbffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000036000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9590794a40c53169fa1e79c80d49f2842edf1befdf025812df90a2fc2d9fb9e97a4f53f30633cd9c6ae20d615f6132419314167949f258f90e95b302867716e1aceee4f80eec9d2762fc7e41251717635b5e5c3b40b71a639271bad80f6c89f2e8000000000000000000000000000000000000004000000000100000000004e4000000a0a64f000000000011000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a470ad345faf967200cb92ab305e0f91ebb52ad47edb1050cf8b4e5224eb739b1437e9e9a9f3fe3d08388c0bd838307f1345a4170cad4b4a408f2ea37fcf94f1a87bb0f4b473fe47c18a66a6b9aceeec14a7375702556223f860b192e4adb78800000c00000000a000000000000000000000000000000000100000000002e4000000a0a64f000000000015000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505094ca5596a9036df656ce91e2157706c484957a996f48bf988687142505bd1651e3372c5517cb38660defcd6b082c7d8d003688d9b73520411de0640369855766b6271dadd1b20d79949004f8edd0a7d3d36a4450952bcdc11d93e0eb4d3941a9ffffffffffffffffffbfffffffffffeffdffffffffffffffffffffffff03e4000000a0a64f000000000013000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505084a9d3f569756a0283c53f5c47b9a49b868e7bea97ccc22311578e25b626f90071389f73aa49733c1971de614358886b009dad0818c845393c75d64d280d0efad41f7d3a9c191b1047328cd4aa661b548415ed63c23aa5e128a11ec2a0864d12ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000001d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508d5c4c8ace02aebca2c8905f072edd1365d3e00b714d068de4ed355c391646e9badfba377e1edf40546ed4d5231520a800880a548fe9629de999f81032f854d273449c0d6306c17dc8b12073ebcd09c17e4e748f774a2e33b4a2e2209ec886dafffffffffffffffff7fffffffffbffbffffbffffdfffdfffffffdfffff03e4000000a0a64f00000000000c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b1bf16391c81ced969b9b633744815204ce1d7d5694a76997faaa9abc9d64754f692f0929fa55965ebd4883c89cf5468078e46a58ae6680d5b6692c2c4736c9045279427e991cd6122d9bedcda9a41fc8c71ed6e70cbfec65bc5b91232636e63fffffffffffffffffffffffff7ffffffff7fffffffffffffffffffffff03e4000000a0a64f000000000004000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b99dd7152d7b3ecabd4d505c1287b4804fc31269f401abf1aa09c3af3800a954ee44a8f8a000a7c618d7b6a0fff6966f09648a102c29c7c0f7fc35e7a4dc7b9da945d22e51485dab1c618a59f14e91a644e0f2792570ec023f554450f2cc5b37000001000000000000000000000000000000000000000000020000000002e4000000a0a64f000000000025000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9580b06d8ca3902b4c80e5ea1bb7a1e9f4bf20415060afbbe3542fa7abf332e8d702846b1053ee00624860323f2ca60e0e09a50fb4e5479caaaec05072b5cdd89b47c50f741a117d3089211c3c38f255d3ac93234259149497b4a1f167d4e0ab06000000000000000001000000000000000000000000100000000000000004e4000000a0a64f000000000028000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f6155e7e300ee555ca12ebc7b1b6d3b3ec9a6de6d4e49cf57367e8c596c495776a15b80086eed2c328e8e69a89c5257055d912b8e1243c1ac03d87ab91af643d8d594b5378dfe56fec6782f6546b2c3586987e8dbdd7de459cafb10ddbd3067fffffffffdfffffffbfdfffffffffffffffffffff7ffffdfffffffffff07e4000000a0a64f000000000035000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ae18e8931a8e5661b49f5881f4b6da28f7fa268ebe0f8bb1cc09dc35de296b825d5c76b8cf350641c4c5b4bbd395297d199cda60410d8c6ecaf08c525d15c4e3beaccd3b9e496b0be5c9624bb771883ecbb34ef1ad819c25d3caff59b4b5baf6ffffffffffffffffffffffffffff7ffffdffffffffffffffffbfffffff07e4000000a0a64f00000000003b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509661ad630cd8f5a0d301fa54816c6861a587cd7c38ad3b1466f4fb75976824e805bee51a6eb2636a3a2660f74c5f6c1f1914d97b1fd5e253537224957377509447db017274ebc6487ec36106052e1693c01379608525ffa18322241b1a270297fffffffffffbffffffffffffffffffff7fffffffffffffffffffffffff03e4000000a0a64f000000000010000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b3e094893413b3bc4352a277deea82e275348114d1f29c928a1db7a437bb4cbeb040422376e4226b306e4f9d6c45aed509c05dcc29947bcf8b2c6f57be05b258aa41c333c1320ca1ab8cb33ade449bcd7ed19529c5ddc7149b2a0386a22b1337fffffbffffffffffffeffffeffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000030000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505097a7f82a9d282da2a73ac8812045acbc4136d076c3282dc65114866bd6e4f19b8bb888a99b60192b95ba97ddcd65015d028212c24466f09d8dc0f026186ad9dbe94a6970ddd7d91215e54c0827097349dfd8a502cf8cec678d6cb6ddf12581e9fffffffffffffffffffffffefffffffffffffffffff7ffffffffffffff07e4000000a0a64f00000000002c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b88aa81dcf7e23d08b350425eece22d588dfedc40c9f90702a9d375960b80a7e20dc67d46d7b7d14cd24c80540f0309216893f33dbb28c95a4622da9baf7a9cb23abdf31e3cf5159a6e0e2053113f194fa842e4f0753f524e7a3b6b91fd6627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000025000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508413946477ff7360dc70e56f20a937f80e9d673be133c25bae1550f3d633bc63568cb900ca949c7e99609c7c37ab3cd0188a64f0a90ad86c1880f3d2a94ef03825abb4dad47925ce03033fb6906f14c2cc5398e3e8faab0b47b1df9cccfc88b0fffffffffffffffffeffffffffffffffffffffffffeffffffffffbffff07e4000000a0a64f000000000019000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9593022ef6995ae413564bd7e21a570e4576f48b9ec7079bc621061f1e55aa5a1486bed3447b2f6a408ddfafb7229d8a930f28d0c0a872b699db6fff68cf9706ee91968d646929ccd2a93c2e8e4a7dbe72a14ab073f8b8eed64491cda007b4f202000000000001000000000000000000000000000000000000000080000002e4000000a0a64f000000000039000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508fa8252f9a3842efba8d54def51e598bcb6a2d87956e41402ec025f65e64df44fbed80afb1bd6eb99c35160cd3518a3a065bc17aecc5ac0b680cf128985deda309f0207bd3fd30b7c28526496db30ff41cc17a8c376bcb53ae5505bb2adf53c5fffffffffffffffeffffffffffffffbfffeffffffffffffffeffffffff07e4000000a0a64f00000000001c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ae1d7c505d438e890697647e9623061aee9762fca0d24423f24b172e2316ac44e7ec91d888616958277b87541a46fb2014cbc25ced4e0be8082d85bb1cbe67f6b2d7b899f2dd62225fe6d695626def79421114c1ff01bb3b586c003e580a08d1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffb07e4000000a0a64f000000000024000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050909f2c2e1b3f1643feb47e0de16e6a40f4ee63d279d899b38914aafab3969c0cf72e6cff96f2a1025824e0dd088fa662049f1294e30864ae8a3219da1996a4e5736ff3736aee218991afaed4bb0f16172c89ef1bd3a14dd0a743a2f569b8790cffbfbffffffffffffffffffffffeffffffffffffffffffffffffffffff07e4000000a0a64f000000000029000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b213c11c3ff69b84d620661f3702fe602ad715a372047778659d85d96df5d7a042fa030691745cae261dfd4bbdbaf19710c56c0bdc6efbdd56bf031d56984042a1fb7a2d11a67f8e5b1a7b4f062ab13568c0828bdeeb30846757d91cfd225b6dffffffffffffdfffffffffffffffffffffffffffffffffffffffffffff06e4000000a0a64f000000000033000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a6e5e9adabebbffbd747c4828c9a4d800ada5814f69cfaf675411c8f3ce0a6ce5b1369b06e27d373405f3987e4f407470fad87ce3cc43f5fda3d9a1ae37d47f060c389569f6cc795a67b63a4d8bc3bca5a698726877d073ad2cb2d6f82c9417effffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e4000000a0a64f00000000002f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b00f6371afa3fcff69e30225b778fae19424deceedb9ab488ced3e81be5ab3a95ae3afdab077bb19c34c8b5ffa48c0c115cd84b0265b8e924aeed58ef592fb411b02d4b53db3db377096ad8827029edd707c44360ad4c3717b53672238ab7813fffffffffffffffffffffffffffffffffffffffffffdffffffffffffff07e4000000a0a64f000000000039000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a8311f17fd26db895a97b5f6615a4000ebd9db01433f49e8b361752f9fb09880d6ba36276071fd8313768595fb1243870c941754ba1efd5509e7acd683815c7b0e8fbcc4e621f15762f3aa3f589a34357cbdb4707a55769e4ff6d3592f46c16d000000000000000100000000000000000010000000000000010000000004e4000000a0a64f00000000003d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a684b915940cf205e29d243c5e91efd63698e0797727ab5c3a821645d60cab94df689331133fdad14a1ac63bb6e6c71e107e0bf963bf9ef097b185ac4e75d94e586835aaf3c0b5e0cabfdfb700f52300a15279bf26224baa00a119cb389021a8ffffffffffffffffffffffffffffffffffffffffffffffffdfffffffff07e4000000a0a64f00000000002b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050939e76066b90a401176f65111822dd7721e902582c15d9921f19b0adfff884cad480f3f7408b06676a8e2fa53631448814ba91b46a5dc735121c044f68da4b8a3ccba5ab5eec028feb6fa1ff4a27a06eaf9729a2003d4c5934c3958a483ce431efffffffbfffffffffffffffffffeffffffffffffffffffff7fff7ffff07e4000000a0a64f00000000003a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f4adab0d7d62008b34750d4294f59e2cb68a798159d9e7843aa32eccf8118b359a60a398e4b64c39502f4f0a285284e0b9a3230a0a997f2fc5b891957fe9056a8929135a15828afec0e8f65d23e8fdb9c58d140090ca6260009433ed893a07effffffffffffffffffffffffffffffffffffffffffffffffffffffffbf07e4000000a0a64f000000000027000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050845df1086264fba3e2e5cebeb8da3fd238cc986bf215ef9142a42c1dd940f23e6c8dcbdcfd99e4b767bd722299f24fd80339fb53c767f857514e667ab10725b17399389fcc25c35d674ffd042d12a4d05d254a67320a3e929ade8bf297be0ba2fffffffffffffffffdffffffffffffffffffffffffffefffffffffffff07e4000000a0a64f00000000000f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509018410244b5eb0aee7df1c9aee88db7a0f88e754ff638793121e3067c1b2a3c0100774d9272c7bfd441b604c61f34470a3e07ea454681bcba6fd02e8f65e4731125a9fc9e1cfdca25face5b23c1b6093c5d5e4584c240fe7c4bf037b4631915ffffffffdfffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000003f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95ac482c3bff7dbbd03af8b0ab74b5c227f8ed475240bd4124f2f9b8df21c571c50d0b98828adef6d48cc3ada1e24c9c850c52b5c335945d18a49835b1411262103292f4bf1191f64da967b3f2d926a0f1d8c9f383fdd2d68f96ef93357987fa86000000000000000400000000000000000000000000000000000000000004e4000000a0a64f00000000001b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505099368856c419207930720ef6e8d9fdc96455d7d524872cfd3ba467e0e6d9b293764e1195ff317a6831b51c8630691936013c0f32bd8492cf9888f9005851bdd68e0c49be73477857c1e135837e97bde62e94ec326ec1003435e576bf9daf02fbffffffffffffffffffffffffff7ffffffffffffffffffffffffffffff707e4000000a0a64f000000000002000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a6599532681aff03d8da0eedbe65ac91353958231f8b9456c7dffa3ff5ac3698465a1c92441c74be06c8e395a4072c0a168a61d6a8185db4bec1280fc4f46357cae7eeecad55c6830c9bf658bf41a8ed8b751bc8db3c058bb276a9fa180c3185000000000000000000000000000000000000000000000020000000000004e4000000a0a64f00000000003200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468aaa360f430a8da44ffa88d30c8b782bd902ee423154ff9c924e6f16a24728568ade677a1f87ab3d512304ceb017718a10e6271a49ec3d31e7fbb51a6e50140a08740de9e9e734c1a8c2960718b9e8f5a7c551e4061f2e293752fd3d7e285220d000200000000000000000000000000000000000000000000000000000004e4000000a0a64f000000000008000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a68ae5d07525ddede46b508ad1eef1ed12dfdc385ecfd0ea1ca0fd0aad01f069c244d5f483e1ea1b02b24ba3ca3b54c910e6a3284116a81e3ab9e19cc5d7f4a39ac9aa373203de2338257d578074915af7c7509c169b7bb95d77539f630bcf68ff7fffffffffffffdffffffffffffffffffffffff7ffffffffffffffff03e4000000a0a64f00000000000b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ac2fe7471d289a3d38a59fa1b836b35eb87d9073a9e1e7fcdfb730db8284043ee969f9a9f003609b51701a2beb71fb950f5ec5c74be9efcf5c8b824ec3ebb66ebbad2719d75faa9abf59f11778889dda02841e5af57fe5cc56f227833dcecf84ffffffffffffffffffffdffffffffffffffffeff7fffffffffffffffff07e4000000a0a64f000000000030000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a7e43fb0587d37fd57be5bab9cf0a50e0fa6236ca0a58b7b2b01cda3d47639168710697d966c8055d7bca2e798f891f0d2e7c0b55ea3ee5a2ce1d01ca3ecc63f8fd121131f402fa3c2db65f96ac8a1650c92f0baa0c8d9e9e03f7b744274c70000000000000000000000001000000000000000000080000000000000004e4000000a0a64f000000000001000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050979b7b5572a7ad1d9259144a5ec6c34172fc2bf6b9f6a182036bb8fe51180fb35add42a5a669376032d1461ef346a78709002d6baf692192a71756f4d3f14c9e1fb4a4a3bcb4af795755af21369d97ee4e76c8b79611374cb3c00482bf74362bffffbfffffffffffffffffffffffffffffffffffffffffffdfffffffff07e4000000a0a64f000000000038000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b959641a3f77e612482737c009ddc06b79265f72a64c74a84e265d3f09c9d8c44f2516e235d279858246e2332d91529c76f149689a28c4b43960a790fd8a9c0fa07cf984591c6ae053becd2ec92f5bb86cc4c025d14fd5415a1f090ed01a55b5e92000000000000000000000000000000000000000000000000000004000004e4000000a0a64f00000000000a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050940d2a76059d3cc0adbc2abf69219880c5091e2d588550f954dc07ad8c2cea3f494ba2a4334e88be5778f730b2312dfa096c2756eca50d07e16001872b88f6bcd8de78fd870b060e9a159745807b37ca34382ebdf98c54d1aa780e085f9bb43fffffffffffffffdffffffffffffffffffffffffffff7dfffffff7fffff07e4000000a0a64f000000000018000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508572e438455a1155889c32956bb32896efe0e4fa9b2fb3774166288035e2bf1db574cc3d0a1429fc8c12a7c89d2a655b02819779c9ca45763389a8333bebfa0d8d42258df324844af7e1e193543f4473908cfdd4dc53ea7a9b2f602778aaacd7fffffffffeffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000000b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958877824f66a3e630d3995381f0de9b4a1025007c2f82d98295b7d22dbb452552cb8ed5e9252ec14e5c75a54f2aa744fc0eb92dcfb82eeabac5fda6f6b541bbff29082c7257aa1b8b8ac983a085f6b89657580d2ec56c1937283d22430ff323d2000000000000000000002000000000000000010000000000000000000004e4000000a0a64f00000000002f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958ebac609c304c9847d1a986746548ad7af3333c9716f0bc09f085f42026e6cb6cb515b4fbfa4410effc6f2f92a3ac9a215d3dda42a03a9846eb00aaa34cd8868dc66f77e15da87df735b9f54e0f683eb51f872fa873c7c6a80cd6b18d3cca1b6000000000000000000000000000000000000000000020000000000000004e4000000a0a64f000000000027000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9593b00a6334211b5f1baa5c07b6086a90e701cab4fc9f4c21b12ab97292d91286e24a01c7bfdb061918ae5cee56de56bc09674500ab0c517611477dd5fcb815eb9c9ea9fc1f36160675bbe6e1d80618c6b1a812d0d6711bb4ad1a7336208291f8000000000000000000000000000000000000000000001000000000000004e4000000a0a64f000000000023000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050871bf1ae5be9c4ae727d01ff54d14afd4877d7c57ca33e2509675fba88ef79af56d55f8eb94b9bc9578d46262dba46a705f12a28fcce071a38f4cd2c0615707629a0603a560e7b9a48466bbe23f4964c5ad882e2982b639f8fcb09f846ce6752ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000037000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050834b88302c23f7fc8f41f26c08283fbb698839cedfe7f4b4aba2e4dec16d1bd97e4df8c364b287b92f7d7efe39099458058b78286f4b24d0978b781b3a3bae833d94ac9185429dda9ba70c6e72e55d725aa168c2c1b7d2ca2e83d4963775ed5effffffffffffffffffffffffffffffffffffefffffffffffffffffffbf03e4000000a0a64f000000000032000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95847262c64b37e5013c580aaad847c14da4679d6eae31c3b6b1b4c1f082317706e9a3053aecebbe3619b8de3eeffc700707ed267f2c154f6b1a2ba4c17747f438e9f9b367f8e634361ce0439a443f0ba34ea078b00ee9398950c388c7161e0992000000000000000008000000000000000000000000000000000000000004e4000000a0a64f000000000004000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a2600043331a9308cb6c7ad72f51c25bfd662823d6f1e3abdc44a9cd4b547068ed822555daa575c55de53786279773770a74adec794187c4e6e94d6870a8f8b2085cedfb0a8ae6c8dc808be72d9bf6a843a5ceabe5802c0d88dae2f153d120cafffffeffff7fbffffffffffffffffffffffffffffffffffffdffffffff03e4000000a0a64f000000000006000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a3b0e1dee28e8a92c02bf1b43a524d997e11a1b40a4ff2f090928308b581f9753c66d21f7b84bd6e24c9ded8645407790e5a11cd2adfc3fd32cf9f8299a370782814044a74398d19adac073431b8b16bc0068127d228e16e3d273b3977389691000000000000000000000000000008000000000000000000000000000004e4000000a0a64f00000000002d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9586817c9c1445b97614fcf8df49f38471176dc903f4cc0bb6d77fd79f70eeb5824745172f723fe1191f8e1fed23613bb9137ebb9e53c026637929e137eba71e10af51769607c24a4a9491a98d8d621a822d18dd36260722858bf9ef1d734b6d4c000000000000000000000010000000000000000000000000000010000004e4000000a0a64f000000000006000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050adc5589942f05df34d32860774a5356eaddf18ebdd92c30e30576c944ea2235b3aae30fe24459fecf13433fcf0ff79030652e6a7f56b15b6ec88893ee5a4072329999843a08762e0b6fbed785c780e1b65f1d1d7fefd4f144d581b8b14235f4ffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffff07e4000000a0a64f00000000003b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9590828c0deccab5ea4ffa658a41e9ec7bc92fb4d1904d75c14bce3cb8a03aa08cc56f6ba65ce8ae7f819e0ebceba58b3904d28b40d9d97486387bf1e5adf4812010cd72aff188d2274e16e2b7130894d72300825d781baed2205c9a90c73f9415000000000004000000000000000000008000000000000000000000000002e4000000a0a64f00000000003c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b9283c8d1d5f826ef8994f2469e2de5be890cf2b6648916648ec92c1fb42dc2ae37203106781a3b8e0f4715ce8afb54612dcf98ba2f614874544b0395b79138f432fc53829649f090b1cbfb7a6392bbc00659bf4253b9e981d5d110d1f45f996000200000010000000000000000000208000000000000000000000000004e4000000a0a64f000000000002000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508888211d73d260706921a5dec1367d92ba50f153e32aed7f974847ee298308a7d02f2d708c774a758ebbd8787e12e8d618601f5f2402452b399662317515dc86e9718f974484de661e6d64061a2c72a5c0624a421be939898980393a57163e0fffffffffffffffffdfffffffffffffffffffffffffffffdfffffffffff07e4000000a0a64f000000000005000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508d8755ba11e06e502b4e3df4ef9c9bda1f6eb707c7c864fcbe559d2de51d983ccd770605dd89a45059efed838d79142d0f46b8c520ad5c19d841c0d0bbf96a00384e3d057e41526ab1ae10d80fb80fa0a34f1d48f8932b48fbebb5da9603a198fffffffbfffffffffffffffffffffffffffffffffffffffffffbffffff07e4000000a0a64f000000000008000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9583c597823bcbfe3c7a60bbc9af421ba0e2183056284a88bc6e72e69f78a5711f129653cec5ef30b2c224d04bf3eccfa703ebacf97b99354c543f06f7189f07ae6b7b71bbc05514d53ad3e3438f86b87573adab5c40bbff8125419733fc5a13db000000000000000020000000000000000000000000000000000000000002e4000000a0a64f000000000001000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958c80e9e80f7be9ff227d0e0a1f616e834d110caba0515123873172d5ac5d8cfbdb6966f709aee2452e32018cc0305d890e2a48eacc52b97e1eca29352d144b26f689ed7f779eab93e0c989afb3eefebb44cc9ef458b0177330616e69d3988986000000000000000000000000000000000000000000000000200000000004e4000000a0a64f000000000003000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958918749d0a67f1824b3ae728bab026fff4cbaa44b14b1132e52cd9a10403e87ffc24e06c2d799be7435c1faee388157d1568fd438543250f580db75a27302c818ede1cf5d2229a54184a144e536d855e67c00274ab57d4eccf52045572e6b1e6000000000000000000000000000000000000000000000000002000000004e4000000a0a64f000000000034000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a43e0a71b2f4d27ccb8ebadf4d72bd4859008100b74d6b5b873b0623437fd299c06d769e17dbdafcd102dbde497cecb18fd3c7cd5b82b2bf31a8a633391ff2cbf68f33611585b417bdbe11b2ea91903ec9ecf5b67f4b18c7d0fe5ef61f19c45000000000000000000000400000004000000000000000000000000000004e4000000a0a64f000000000020000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b7f04b645c48ba674c4ddcff138be61ccb36215e9d98f9726480fdfce56144438e64d2f509861a2ccb01e39f95db603e11b85923c1af01a9b9020cbc180ff1b0d0ff1185a9c1612bdc83f09efdb44a8dd703d92fe944a15d87e6470e14faea48fffff7fffffffffffffffffffffffbffffffffffffffffffffffffffff07e4000000a0a64f000000000011000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508b1b4d69682f6697df4890e01ef9bd4acf3413f9afdea9731b43dadcf807e791094b9068f16e68ec719f2d401a9ef46513028894f122f1ef7d894d3156a56b161b5dcb4dbc92d19a7590a4aac2f981a31d7f9d2481463c59b9aa69eafc52d5b3fffff3ffffffff5fffffffffffffffffffffefffffffffffefffffffff03e4000000a0a64f00000000002e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958e1d240cc40dc66d285974b23b0dea4ddc2a8770ef9cad60ae08ff4590776de635dbfd7e648b008335c69f6b1fc369100bd0a9c789c6198ba481f8b1ea117df28e5d5d4f8cbfb64ba385eba51e16324bbe1e4e503630490d764a3a32ebe210c1000000000000000000000000800000000010000000000000000000000002e4000000a0a64f00000000001e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f4baebdb2af01422e6941f241ae4b10a0a61f9d4b14231a5b39ea478908fb7ac2ba8b75a8678ab65a041581722b2f33069c5517da86df502a3d9881681188e52eadde50733191478a81c67938adfb3dfce5cd2d68f394a30dd5093764370633ffffffffffbfffffffffffffffffdfffffffffffffffffffffffffffff07e4000000a0a64f00000000003c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508eb8d8fe010b644ace5b8b7e5a644e72dce76b3936a37403c2cbdf8afeb017f65d3929fc8a17274467f164dd343a8fe71791906b688af4e2d1c73f99a8e048af35e03f79ffb447110953e632b114bec82311faa55ff3d6fd8662719e7eb4b8d0fffdffffffefffffffffffffffffffdf7fffffbfffffffffffffffffff07e4000000a0a64f000000000036000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b236af8892d13c5bacc321d3d1945989ebc1314421d23de5a322dad76501eb0b674024a2ca637116234a7e53829c3d8119a726378e9debc55d8884ad3294127f92c0d3ae1ce622cd925a670687539098356c127c5cfae50c837528a1ae6423f8ffffffffffffffffffffffffffffffffffffffbfffffffffefffffffff07e4000000a0a64f00000000001700000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468a5f55804539553c435ef88091184a25ad34c5bfe952b1a8c0b7b18614cc4ee681010864e73677f8cf2fae4541cadfa4c0d3f778e103ed5a480a1246367db5798c7e3b29dc1c525016bd7642f75ec4dc7f00abee679498610ccf3fa571aa4a928000000000000040000000000000000000000000000000000000000000004e4000000a0a64f000000000009000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b62b508c665fa3d2ec44e53ac6771b5780a1ba2389ff57e9e6bdc29493fa9619ff9fa438ea2b3e4c2484c939787fde531106642c8024caa808310d3c7a8cc60ef55f04e92f05d4aa5a14ae21cd90a62f23037ca2ac878161fd9a551ca348ad4cffffffffffffffffffffffffffffffffffffffffffffffffffffdfffff07e4000000a0a64f00000000000d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aa2b59355af9d1e9c7119226f0aaec11651059d4e3a04c4a2102981dce58bc4097ef3ea383b2746737d256881b3840e50fe55e1410e6f2e48aac534e72e2df6892a035d86a88c2005177d5ee759a2da51fb7fa9a65a4e3ecf303742d011cfd70000000000000000000000000000000000000000000000000000800000004e4000000a0a64f000000000031000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aa4300a3d7c4c06501d1006f9a69a55b8fc3f9bddd0b122a9b068e1631d9e8872f4cdbc200852c5a64f6f5e01c77c59012639bb319727bae566a8ef876321ef9f09c5d3bad4c5422b53b3a3450ca8a9ce4c0bf24f171144cc4cfed67874a833b000000040000000008000000000000000000000000000000000000000004e4000000a0a64f000000000022000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050962ef72d96cefabb14bf9b11e9212eb6eac9b5eb5e342b6470f8258acee337b03e810900c18f94f8fd66524ccf528bb610f650da4b850048c79a1db8e9553e709b01eab5d09b1a2a22bb036ebacc33b8f7a0fbef3a2eadcbf2e587c8f28dbd97ffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff03e4000000a0a64f000000000014000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050862ec5425b1252c76a15929ed6e6337318170900831ec9697cc3d16e5130694a79480a0a6133ff6ab74c1c1a98a7a91203a6125780c65e2324955942ce0880b3c5af99d1438cbbcf6bc998634792d5000d8a7a906e59fa9bdc836883dd21221cffffffffffffffffffffffffffbffffffffffffffeffffffffffffffff07e4000000a0a64f000000000038000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050afeac07b398936e4b0b682bca6830ded2e1bd5b84cf009f8ff3ea489c90b1381aac623fe0124894eef4717abab3ce7120a7933c3bc1c9ba9abe502cb9b04db7ff4917c039cd5534d957078ccc2bbc5dd3e5a6cc49a137ac036387a7202298a31fff7fffffffffffffffffffffffffffffffffffffffffffffffffbffff07e4000000a0a64f00000000001d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b4019b0c790a08cef9ae2690a5d76d1918ce5c306634f80912e91a99ad3d04faae42fa629c166036185047b500154c2910a0d33d9bda0183f2d065dd925444d242a5464fa663aba381fff358b11601faa6dbe8d9300add27790c17adf6a44e7f000000000000000000000000000000400004000020000000000000000002e4000000a0a64f000000000014000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b7561860aeff0548786e7d68742744fc041e8ce49cfb9c2fef49d47dc7a91e386b8ed3280e7db654bb9147574af643f910934b0c74888fe37351517a06a71cbc274954bbf40c5c33a6d82e8969c5b3d63c965f8eda00b55069163962d257d13a000000000000000000000000004000000000000001000000000000000004e4000000a0a64f000000000019000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a61472d1df1491a94ce1abaee1caee39f752013f309a6d29a3229ee4be459e70e980f9edaf41a9e40d2535f0fccd37dc18da2673cc44473476918bd640da871048ddf800408e835c6b88e1d03a1f159df57d9a94e185ec80f2dd774093347956fffffffffffefeffffffffff7fffffffffffffffffffffffffff7fffff03e40000009fa64f00000000001c00000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0ad2d1d07e13ca622798a27b2731ca0da1b42b4089e62e42f163260e24b9818b4d1f6d3bc8a415012749dfd0388078f2902145a97c365b8641d0689736c5bba0eb443117eb14e9d437e798dc06ca5dcab5bf663792fe66289f6a6227493a635ee000000000000000000000000000200000000000000000000000000000004e40000009fa64f00000000002400000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0a78825fa9f9d9ec1c6b5d0d8143fd67374f35f4436698fa787ea6301419b744ffaa72fe5a3ae43e756e3d599d3c5547800b6d1838d0111274dd992f07ddf46cc371dc96cf3c2cbbfeb10b9faaf78d830b9d1d559c02f54e3fb1b1ff2b720559c000000000080000000000000000000000000200000000000000000000004e40000009fa64f00000000000200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b01444e342bb37a449ea7b8042bd31163f5a8cbdecab2c9be06cdee288b555c192b1274c16f18f6f236ac00d90d737d3151175b1f8b32c4768b254cddbc82998e88abaccf1706779f2d24dee3b2ad7a05dfdeaf03a9e4b794ba04ea4d8d51c7a000000000000000000000000000000000204000000000000000000000004e40000009fa64f00000000003700000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0ac00218c05636e3ac74f47fe83e37462a633dafe30a8acd222dc31b7370572b792cf6e0bd5d4178753ee38ef82ce1a890de18c1b290db6285b4827e381d43afbf35cd041b453d60c933366d54f8ccdeb2ad436892cbc88675c2cb0f607e84cd6000000000000020000000000000000008000000000000000000000000002e40000009fa64f00000000000000000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b15df1b0c7db9d568e39dfaa5ca6cc2e373b5a9310fae735334b7f1257cb37372486e45ca23999fee5f1d6158f8a58b2176ecf0fbfc5d502bfb75ed8b91dd9212f01c09df99593c1872941c4306c1c0972ee7f93730e5b4fa21d4e2b9ddd2304000000000000000000000100000000000000000000000000000000000002e40000009fa64f000000000038000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0a2a92dfe7471d555b792260b90840c5f4d634821831681a8b9130e4a12d7633c9a719d51be13a029f35271b3838cc3c009018bcf00c10320e684deec39c2a100aa08ef13fa6849473918c686ff241d7cfe8cbab655b5e9f640a1cd5c7bd4e492000400000000000000000000000000000000000000000000000000000004e40000009fa64f000000000023000000000000009079269211ccc5ec2425ee0f13f6ef5348fd84c4d2edc41ea4b4f3a2ecb23d10337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0976385c1579867feb28929fd6271daa860638548a72b5cda8ab486c2fa40b9030413860306d91471b1bb9cf31f4d57d107466295d1904418bd0f53fb4ce18d43a7fd5fa87b9378ebaaf448d2a4d6857302abfe9e83df40a141180322ae711e9c000000000000000000000000000800000000000000000000000000000004e40000009fa64f00000000000d00000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b65a077a725f76b5a763f889573455515b7c0dc4bb079a4a86952029882c704d8d29ab2246412c46547ce15e0b581f5e0f130504d711c40f9a74439baf019d2ce37d53f8f9263814d42ae30e8541b1c7afc15afcacf984eeb9a8dba5f60009c4402000000000000800000000000000000000100000000000000000000002e40000009fa64f000000000035000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd095368892968815215f0923f29b2d56f65783693b682145554a877fa51594603e1b832f7402843aa1fca921860aee73831993d970bf64402673ad1a15440ae953adb4002395d63095e8e39d413a64380ec7d191b149daa69b44394120200fc431000000200000000000000000000000000000000000000000000000000004e40000009fa64f00000000000500000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b25d443a8c0074a028397d8e7117a130f229bdc16902d29e0b79147c51dc74e2762796bcb2010a803e5eb62d23cc6f720365735f23ff1e0c4b5959a9150991b0c1f5efe19d85ac41d14098a4417d5a0561ce13842b5566066941cbbc7b9c7250000000000000000000000000000000000000000200000000000000000002bf8b0da0e13574fe3f57498203f86a34b0ade70bcf13856c6975e86b416b7880dafea492d9c6733ae3d56b7ed1adb60692c98bc549d61fcaee7a2c6d9d0c3f3e58cb578c6ae97a08fe59a62a4b7c32688c753faa204cdcf91b8f6c0413e49094d9bda7351e8b20768fe5dc29a17bb60cdd966258ba384f4ffde04d7425e86eb8dd14b39ac9f6631005c4277b5399f3080f851317cdef5ce2cf73f0283395a71b537945156a2846a45b2d9716369b8c8d40742fa92a626cd9a21a746d48a524eb213852eff7c97e22d440caeda621adb507dffef7aacfb734f2b9c9fad5b58d3e92648faf2915a955b5acbc62a3b4c1f85feb9f2e7620ee65f7346259364db7592d98ba62909f39a6f1ab60d9d10de84e23c3701c76275cf3c9316656cb0449c6aa99c1bc240be3542d3d47fdf3e85039e311409d9349dcea46f38b2047ec7cff119ad2f33575db8a7d6c93193b9eb6eef26326eb29fdf90311c8f9652f2c4d7b6c96d774a888eccd1c0a1abf8b99e83535588cede719b68c59b9501ee8952f779ce282ba52406984e13d246115f4278484520e9108f7f4000000000080c3c90100000000cd82c90100000000e3ff816300000000fc010000220387ae02000000000000000000000000000000000000000000000000000000a9d8a06f036c9d02cf8d1ccd7a6d2e3672c74b400122980bde94b4f5874821e41b020000496c6c756d696e61746520446d6f63726174697a65204473747269627574650c0400004b06000089080000c70a0000e60c0000260f000066110000a4130000e415000022180000611a0000961c0000d41e00000921000049230000b9230000f7250000362800006b2a0000a02c0000d52e00000a3100003f33000074350000a9370000de3900001b3c00005a3e00009a400000d8420000164500005647000094490000d24b0000124e0000495000006952000087540000ee57000085590000815c0000c05e0000f56000003363000071650000b1670000e4680000036b0000216d0000576f00005571000075730000b5750000d377000045780000647a0000b07b0000217c0000207e0000578000006c82000098850000b8870000cf880000848a0000f68a0000a18b0000e08d00001f900000d5900000f3920000109500004e970000869a0000bc9c0000689d00009f9f0000dea100001ba4000058a6000096a8000005a9000043ab000081ad0000beaf0000fbb1000038b4000075b60000b4b80000f1ba000064bb0000a2bd00009fbf00001dc200001ac4000058c6000095c80000b2ca0000eecc00002dcf00004ad1000088d30000fcd3000071d40000b0d60000edd800002adb000067dd000064df0000a1e10000dfe300001ee600005be80000cfe800000ceb00004bed0000c8ef000006f2000045f4000082f60000c1f800003ffb00007efd0000fcff00003b0201005a04010097060100b4080100d20a0100100d01008e0f0100cb110100081401004716010084180100c11a0100bf1c0100fe1e01003b21010078230100952501009427010007280100452a0100842c0100c12e01003f3101007d330100ba35010037380100343a0100713c0100af3e0100ec4001000b430100484501008647010083490100f6490100334c0100a64c0100a34e0100e05001001e5301005b5501007a57010097590100965b0100d35d0100f05f01002d6201006c640100aa660100e7680100056b0100436d0100626f010080710100bf730100fc75010039780100b67a0100f37c0100327f01006f8101006c830100aa850100e7870100048a0100b88a0100f58c0100348f010071910100b0930100ef9501002e9801006b9a0100a89c0100e79e010004a1010077a10100f7a3010034a6010031a801006eaa01008bac0100caae010007b1010044b3010061b501009eb70100dcb9010019bc010056be010073c00100b0c20100eec401002bc70100c0c701003dca01007acc010099ce010016d1010054d3010091d501008fd701008cd9010001da010040dc01007dde0100bbe001002ee101006ce3010069e50100a8e7010045e9010083eb0100c1ed0100deef010051f001008ef2010001f3010040f501007ef70100bbf90100f9fb010037fe0100b4000200f2020200300502006d0702006a090200a90b0200e60d02004310020059110200ce11020081120200f612020002f9023b0181c78545d964b8008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7ada863bdd3e62fa72dd5ddf8ee40baa53bce4a43bd7505061dc979879ccce079c9a790faa3e44001937b64c4884560a28b4b46d1881b661a0fdc94c23bc00d8650e243a3c7b0648d96d7a658e388b6563e75d6dfddd7d50464a94ca8a4386a2e89ffe0713dea32d760fb4a5b5a7a168d815ab1f7bdb96228dc91cbf03501d08f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a005b8fdeb0a45bac5ed0e97479bf31a2f65f32f00be64873f1ad81334935322efa0532d99fb665e41ee33174166ff4eb014a07b644b4ebbd019a13acfe885aee77802f9023a011e85430e2340008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfbe7927bf19ef7ecc2ace97306ed1df2cdf384af21e6f40b698ebed41fbe510ee0ff1fd72a9762056337353d4bbd942552debc9c8521657a3376741400909106ec6f6441183ab8c4e16606cf71724f5d7f5c71ba2ea062970a049baff8062e4917dee97fd71544b579d0e99e75a8b69a821f0c85f31f1fe9f53b917a39204b4029ad17b746a0b4b16be231b3a092e26643753bab08a40a56f9604f670ca9b3bffbc12253fa56745c0a5f7e73beaf53bf238359d2c52dc51d299cec72f9d40a9526f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a02d1c91069624054ea7df697cbfc8d14913db3461b04e8e9c3e41de233e48a7bca06f4cdc5b2b7d99c2e92df679efe3742640ebab7b8dc49824678061861b7fc84c02f9023a010785363fe1da0085363fe1da008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6ff1573e21ad3467bd1f27362f68e6422babd4a590b42701b18b11d620cce84bc562eb0ed149621683b98fbf43b7acddfaa6ccfb08561f0d87366ee9deff2db080a6ffb522c66617d386c26196f40502fa1bf8ce24610ac8782984830c7ebdabaa88ab3d24f5b359e6a658d76c9d657e35b81cf9449c5c8991555d169b106a23c53f3986960c7f7938ec0bf7de012fc0420cb69a2eb1f6c17481638874e58b1bfbc12253fa56745c0a5f7e73beaf53bf238359d2c52dc51d299cec72f9d40a9526f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e06c4509494b26d3a160a8b7a06d42b78c72b883594ff3c58a8c6a778f265eb0a046f86be246cf8621815dd11e5f7efb828cace32f52b3cbadb6951517edac704002f9021b0181e68533b03b2c008533b03b2c008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a2aca32f0103edecc196249ac8af079c8d169c2fc57e414302e045bf7fb0e8cc665370e3a2f2ccd5f3a0f3997e69b11f83c8478e55cb1c8d3f95c45a3d637ffa19d0265eb06769abbd208d33de7824b7cdfa8bcb79f5177a48c89ade65675ecee4c4ba7919a4b80aa96144769154f17280574a628b6dab84092ca0dd4bef852cdc228998f83c3b0943263f8ae8c204a222eadf53e2e3e2cedbce275343bca06ada448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a09ee5c64a0d41c1074cac3b9451858fa1624a14b4d45e4f94ff008430096a7493a060e9e22a701464be9c76bb6e5a9f9bc9cd103f1173bd36d4f85e600995216d0102f9023c0182047b8530e4f9b40085975704e4008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000baedbbb5e3e1ec3668e12f7298be3488aa603c69fd0b3aa9d4d4263983456327378d63743735425a0732c41a76734bd22d154be4f6bc1d917ea4ba5eff83d690c12f65eecf6cab5396bd75fa085e4d89a90fdfba24dff38753897d97bb79b795ac0c7dc6e84432959d8e88803edc5529acc63827aa479a7b01237ae1fc8084425f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a5a1d6a860d997bfde9ed4cd3df6d76b9846556c7d6e3dfe6be1b017bcd5c69aa065bab9e06536a004795f263e64a50c4d4045f9ce723a8e99729baf88148f977d02f9023c0182028c852ecc889a00853a70c40e008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b97bd938fab694f8b4e7171c8cb159d7188e6df42a3ead0434d486c8baedafb81bf2329259b92531d207a1e635195497274af3a3fe412492b6b6a875155ca87429b126a2500b457e371942565bac84f20ec3930bb5f39892c66eb7dbe6b72ca1170cf70f58796ea5b9a880640d898874fdad0dadb6402f8086ed3c671fcef825aa24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e75fc55033bea663e4393052bfee398612fe9ae4c3d5a7ea462964b098616e71a0178610324407069afa0840b6133516423bb7fbeee9f663b7703e0e54b33e7de702f9023a0124852e90edd000852e90edd0008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5e444f6781da644a6170beb65b6cbe1e0cf95d25dbdb7b9b09d13933e383977604b5ece411789638b9b6f00604c2b89c3814d2e8cd5a79f36ac57f3bbc45bc2b1b89aa1737388b6f6f2be9a8a2ef9a59f919ffb39681ac95d9723fbf343e463e386a828a1c3c46306e25eb68b1e9af5159e9d9a98a1ecceaa9782b0247d4ed5ca9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05c59bf2ddefe2fe992df40782c9f10d884c2539be8225f48406b3549c083f384a03d4bd20db6f4f64d86eda7aaa386d40b970db4e06da331352582ce766a17380302f9023c01820202852bc5ac5800854d8858c2008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc45abc0b4e641ed0fb2798970e3ed8674642538adf5faee6f1f522761974cc278f3c6e8f6f1cd8cb0c13b67c961ba501b3ecc6fe6206ea1ddfa13581f7543650fb68cd63979a654ff6ac4eb4e711b5a56d6174888279c1c76ea66a60fd47e6ea56a4522b0b271ed881d57ecff1485715e33b013c664476eea266dacfc35aa5b976ae7090546b9b900712031e17f61e88b2e890601fca5cf23e4f2cca9a8bff62a4a8f898ead64765bb8edb3ec5b20f1b11b97dda9335cffd26f8bdcb63b46bb50a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d62caa5ab1919e633b9db7885b52bda32c0359f81669f24895087fcae7ec2119a05a77188895c5194db8354fd06d0f759912cf991985920bd43a4456eafdb3a23102f9023a0122851ca35f0e00851ca35f0e0083061a8094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb241325ef06772e471b8abfe5a46e7cd632b6a0a7c33971b181d33c7293a51b4db89038ed2e4be4ff0a7bd5b26a8d6b9442e2f0cea03340a59ab725fda6a0002887ff3b26b70081e49de2b25e88b46087ecc29920eca9d892993071629981a113c0305a9a15f0a9def183e235512e7809d095ba5b9ba9f206885ca77a34e9a139c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0231c36930ea393e43efab0005a68e6d2120f73d9803aa18aa0dc33d058ea9362a04e6cfa85c0e82b61582871e01f7723c323dcff7e9b5a1f746636350ad7604cac02f9023b0181c0851a13b86000851a13b860008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0fd6e7377f8b3df6becf6ca02309488dbb329a570e5bbcf4f1e226588d2bb0f4cc9fe9f96910c267cc1ecdc02a2964570c66ff0eb25ae87f31a45dfc2760b04189a501e10f41998613944814f1240003f513ac41249daf812dc19c5726bc637d3725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04dc20e678667e8ae41df71ad27e7528f2b9efe802b95c2719c1777d60f12b4d4a0738fd12f4f484a1deb7e4b3a44f58563ae7b2d38fcd04022993f7e02e302b45af902326e85178411b2008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc8150a14b21d624f4923bf8170388b57e122db7fa8cac145381cb3f7a5705a543f428acb1ea72ec37418e32016759e0a2c877a4df6369ed9cf096f55e064b0ccb8ea5a39b4b2625778970f411c384de0c2a9c2f7a9d7b829b2823bb140cc0d723ce6d75bdc1a4523d71af2fcf4f4fd5247cf3f5db3bee2b52e4852739aaf94c80c7c4e431d837e63c6d425b93e9d17e49ec9524d5772718c2440a49047d8b5a959534ee891dc7b31c689f26da2d42c9d5169363891bad63efa35390a39433d4a1e43257fca161d36bc6af6f7c08e0a55f2644a631163b9c16f0d890de7f223cb367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0e703e54c50639e6873e66d6754370d943e0ea05c4c44ae9dee929b4ad2f48bdea033d3c22f2706d776c0266a0b6775cc70301bd3f37ab948516838bb58a6e625d202f9023a015385174876e80085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b70e7ce9f0e228f6dd69284870852c38805c822f3be3fbb741fc3c28b04b594e28e36ca6f30237257d8f944ff0b0afa7202334f57cf154c0bbb126176623a47042669c73cc0792fa6ad5e7778485c9b746c7a62c21a018425e02ffe9f75c017b2af135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0b91a9496db45457f1086dcde624ca1dc1feab1184df31c8e8514563abae80e2aa055737b76836f5f5ae81acc67d029373e87e9efc8b5f15054e9339dcd51fe320ff902327285174876e80083084e4894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7408df52cd9413b226445b90f49ccf05016c5571025d3d4cafc32dbe1bfdaf2b3e5847e739d3da6a6ffc7c373ed672b312d1222dff9221ff99a8fca51045ad04cde5d7cf8d0f97a545193629fff084cff06a29796df3366067e7f587a5d88920731f92acec4e3eaf71375d589208e38f700b752a8295ff4a6c47f6a8120d0f0ed57d1c816b23d9e33e8a635ab9df8a95f1c394a9e44b4dad0095db5096d1639b2ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a07e1ef14a9f56969ed818b8f80a5fa9cc18f9ac1a6a80d0682f7b2bf268baca18a04c9d85f30a2f59740a3640df0d9536190469c3f06fdeaff81be18d044162f21a02f9023c0182014485174876e80085174876e8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bce03ecb0c99e7cf1997e620edc307ccd9a523c9d02ae27107d6e6c63a89b21bc08e85c5f4a1f99f05a6cedbcd0e52acf2e55cffe432c02200d2c26b6bccec1cee52180099a30a501cfe898da153068e42ea4c76d92c1cbee8dfa699c20f1a6db0db86768464f964263b4d04fdcb22dc7fa92617721a737a16f279f245402f172ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03f7a48121bf117170e1993a4c64d308cb099d7196b1d3783f5f7844b4cc052e9a055e9f9fbe0d434d1a9ed64064cf1e742dbd40f061f890c10a5b3fd5dbdbd987bf86e82048485174876e8008252089456d8c99fd3ef0405a02f95191573778e10420b158872d03b8962fa1025801ba082cfbc2893da534174e4e4716c1b495a7a1d327415deef7f6c53dca1c7a57cc0a03113b13ad036147f3ebc2fb499b60a2c35c3c2d6074f93170344925c3bcb84bb02f9023a011785174876e80085174876e8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b442a8423291fb8880d8266aab50d0a5fbd31d2b1aa3be4e965dc92c1e7bd2126945fe5c7fd722f596b09dde8367bba29f9956716e0d6a0179f918051a09319b7fc84c1e044f04daf8758a708abda0cebffaa9cef1a4ffd990a9db30e8bfde31e0e3f9ff8fe75329deb87f104175beb3ed4b66bc012c401d52bb97b16679f9872b5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a09f6406bce0ff816f3734d86c08fac482176a9830f931a913a2f5b88d50f4bc47a0680824be611207d186fa280dca9437b5e7fc45c14f3671db7e23b32ac4c0268602f9023b0181e585174876e80085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1be40e85049ce6eeaa87dc62cb979a76d483e08b2b800bdec008f244f7757b32bb9ba9978239582f12105fe667e8dc777e2ebb48f6bf93fe7dca76e8dd3a55e167e03b27d10aa470988c22cd968e1bd4a9fcad75afb7cc48d589be0949b2b3b7116a56e0a9b1719b7de2653bcde0fa2f2b9a29368b85d3c8a4cb76b1f067cc2ae638493b504c4955b832bc4cd7aa2f05208f6a8480eddb8dad4d67b6bced37a8ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07311513ab68655f76bf4e47db59c6acadae2b891e0dff05ddaf38c5ff6181412a04284da41cce0b7a93deff5729f8cb63d6117067b21a65bae853213deb301a811f902323185174876e80083084ef894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be6de229f32267f5040e54c266fc3eaa65b70e7bef1358147ec1c4d39b0a3150b4d801216662b5412357c2b6dcf8132de69ba5a1390db4432d91010d508980f1b3faace2870383cc411a32d81d273b70b1234741e5d34ccb587aa76a3f5ca0996be4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a05024dcab343e5385d02994c4f869f27962b5516d068da17c1ceeac7216884cbda02594c6bef248ea3a5f63890c52c5bb52911bae6f31d4996fd9fba1983ff6509cf9023221851176592e008302957894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be3e84dbdf82bd1725462380067ae4b4a5b1e2a4da937f5e0be85d39e6ce3ceaaa3b785082f1158d9ff4cd75b69aa8596052dc62f1ff25a11c69d90120f5499820f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0bb8d2dda4f0e3be952a1e0e5a0f618ff4e28c18b7bc51f78cbb28f859fdd7d81a03ed0601e3df1a63af7809a6dcee18ff48545fdc9ebad0e7a59632885b33e84eaf902321e851176592e008302957b94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1e91b3db5a2d320e40e7c1ae9babf238a71f67c4045e0f054b0f7316b862524158f35eb988ee5dd493f271bba36795a7f949f378449e339e8041b73b2b09b9bc356173b6a8f7b32c0bb689ecbddbaf35f49219267426a92f825b963f578624cb8a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a08443fdec0a50c7d45503c183e70e5d9c03f570678ccaa484661f75b9af47a998a026dad5e34a3d0178dd343ed866e0851772c122d3453d88dc925854ff94e99ac5f9023225851176592e008302959394998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b816d79c386a9b7094d75866d7e30603afdc2e56d9fa01c9c51fb93e25ffac99f3edba76b7e8d78e371a8e11c61dd0e1f2d4a13ce175af5fb334ffa2e07dbfef00f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a08dcf3cbd4002a90fa556942d45cbd34cb3db8d8c1a820e5cfb4427b64500aee4a033008d28e8ddea6b033423497901559447f15ace9194dde2dd01fa679726ae9ff9023223851176592e008302956f94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bda7fb60b2dc781069eb2266115f758e8f3738858d63fbbb321c964ac10795b0c58f35eb988ee5dd493f271bba36795a7f949f378449e339e8041b73b2b09b9bc356173b6a8f7b32c0bb689ecbddbaf35f49219267426a92f825b963f578624cb8a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a01a3a5cc3852a047a4bafb64f8a668623a3dae3ef358747ce2acabf6c53a20bf7a0649bfc0fe6dc1863c050380b8950a9e3bd16f6d96cdbd6c509d9fcfe52626caff9023237851176592e008302956894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b09c68584b63fe0c2b09973e9318570e835f4251485cd35275c950e3f6126cb382fb47cfa56a91a5902b356788509ef27402a02c808bf819fd5e330e7dbdf0dcb18a22af3358533beb27e666daa1e23ad2f463991e85100e2e5a9cf83c1f4092c001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0441414faee5f59d61df4a8d41d79ad80eef81c2f8431a24c87b9bac17fc0b6e1a06efec9286389c2f08b81fa3bc96d13df4aad4a63472d9db6e312024c9461cc7cf9023227851176592e008302956c94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfb04bc90f99e584494713e04d885770e7cacef7fd3000299f67d5eb7b31223d4a3b785082f1158d9ff4cd75b69aa8596052dc62f1ff25a11c69d90120f5499820f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a03edf1ec5515d24cd6ae48fb7cf7bf71bb8471155f3d1104792c37b05e6edd8aca009013b9615e9fb3fce68811d58ff915d6cbecb8e1516b74742c4051c252c1847f9023228851176592e008302958794998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb9a8676205e95ae90a5724b2caabc4efd961ddc62e3487920c14c9411d61b2283edba76b7e8d78e371a8e11c61dd0e1f2d4a13ce175af5fb334ffa2e07dbfef00f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a0522d309cae353a7be299d363c1266eaf01c0af8fccea6bc077df8c0290e35f26a02f9b656d300083aee207fa4fe5a106e6ec8a9aee4461384b457b394380d335f002f90239017f850df84758008512a05f20008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b731757965ed46fc36d68054a97c619a03f0a00720cc10a03dc3c52a38b23330ee48d2187ba0d7673db0b3ae258af1544bc57799f53c7e00d3d4307deb0f28b599012c5df556034a8971588cb55eed2a1ee7a2f7e37e6692714f6d1e69b393893666dce4fcf2dce3d119683aadeb1ea17923ba5b074391c1491f124cadfe4b30ca443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0019fc9728b1c20ba7feebe866fe46d8cf1a57395dee82124f47857c4a9c11ef0f0a04d5f1dad7f137b2e53a75e79534ca65159687e9d656b697b9e11137a8982238802f9023b018196850df84758008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7bcb053dc9008f8eddc1e917251784f38889b1906ad94f22329bc4d8f823f76ae942adee59f8324d03ee7151ca9f97b30e8035c503f7b1c343e5c60cf121a7d3b74ffd93a9b87839b9f21bba96a3420c2c0b969d223e76c6945b874ed152f4f7001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04b8bf40783f7a6b0fe88ad16ae1fb5d9cbce6bcb18d9c83757111601e2380e54a048a3a37188500b99394211f56f9462b6f8fa0f275fc3b1709a21ebe972cfbde602f9023c018201b6850ba43b740085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b264544abc566124db9e88c858ea8a166518e8ec26a482178cb4d485215c75a8f9bd0fb10f44d92b01a0f120d3d43c06cadf844c9b3cfc3f76054bd1363bb7b921a5188d028e80691e16958566ce420fa9e4acd11bab6b0c075dce32253f03ddbff0586c654c72f961025bfaa62fef509077af2d646ccb51f70f8d002a6f80bc74f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a032239dd7ae7d672dbee9ef4591f5d2a083ae4cc1baa2aa980deb514884df7a81a06055b133c2a7e3b70e0c8ca8e4e2149137e3929e57f1f6a635dd6a82343cfbd602f9023a0116850ba43b74008545d964b8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b80e84cbfc5c079943ee19b564c7cb1c0904212a33adced3bf09f5ecbfdbc0c5d28528082db6586b8e30032025ff7d517fe8b486b905a158faf32a3886b3ca7cd296055fc571146d9ddf3c739821c98b71536584de28b5c9fefff32e8937edb6cd2f8e9cb25a0c039f4213639428ec514dccfd49c1ff6caca559f9af4f948e89ee04a0a4e50daa4141cbfb0658f625b72ddfbc600881b4257e454b0cdbfcd45a402dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a01c795ee7dd575cf201c7ca3e32b9cff09248dc257aa168a1368900ed82e02ecfa02e50bb03de1a07da9abc191a6f0cf8c8f0174ee0a8a3773c173c39ef1b678d5a02f9023a0154850ba43b74008512a05f20008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6b8be841ea377404c041938ad8fb2d801de46ed30c4247027093780e68b8701bcc9fe9f96910c267cc1ecdc02a2964570c66ff0eb25ae87f31a45dfc2760b04189a501e10f41998613944814f1240003f513ac41249daf812dc19c5726bc637d3725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a04c7d8db89c5422dc65adb097c8f5ab6c011f82d28987543d562543edfd945b42a00503fcb3cbf24d27f8794a7c8401c1eaedbb04205db278e76d0f120312bfa3d402f9023c0182026e850ba43b7400850df84758008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd62826cdb86f5058750f8d583c145dbfd97729b6e142350b41589ba5ce9e7dd95d3e9b05910872a0b4153757a71464074df8cc0e2e758d8a1907dbec49477a13b2f49b7711b17e3585f9a0c620248969cc357d908a08801d1a1b217dc02c7d62d25255a0452b6ed48bec4cc84769d72a360366c827346026346457ab537629ecc082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d78ec7fc21f54daf83cac0ee10369958e6e7e9b2c5e95616409bdc7d759ead0fa001585b308d574104aa68976981e34b0a1bbe43003b6c54a82f166dd1aab4122e02f9023a012f8509502f900085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8176349314eea35c3bfbb03e9ef01ecc9713f46cd379a745dc747218d6a053f5926fe3503555945ef5d6e47e55b7b2a636ae7694d84611b4ab80c22fe3cc7b753e47e067aa2ac79bbc2890e81edb81b943b1e7594f3161a7576757af6b5454e25c21c7bf72845ec58b465183e9bc1d605c870975b3347b8d75184d1ef2ce99053bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bbc723489e542abd9206adcb0ff6b6b9efe3f10fc7b118600d07b3220781934ea0117ab64a01a74bd53e6bb86989bbb6f945b71b1edaf93159cd3a3c866a59e08702f9023a0132850ba43b7400850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1871e752854c0a22563c3a15ef68225d2b5290fd0bc4fd2947953a819bb357325e0fcc51c50d3377baa26bd217d5a64409351d16f2a4da5684ec1b0293466ebd64da476bb44d716ad470b26b162a0e8bd5712c18b4252332643b04aeaecf01b95fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d9eaa4b3e05116b039bc7987e3fc8446a7f95f9abc74cfe1a945dd16abba7ee4a040e73630cbeadc2da1198c67277588b0992b8bbf85e95f53bd469cf0fdec59c302f9023c018201448507aef40a008519d81d96008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b52814b7ca8bcbaa05eb480332276777b395e28aaac9d712fef9aea9df0667fd27e0d1034c1eaae3eecda57a5551daccbda1f253b5430e896289f29620cd2a047ac5945151e9f5337e7353af3325bba2817681b87786e085a549abcd405c8412770ac02216ffa06b83b127b6c3cc19ac4e4e79e6584305fd3b1a3c966de678a1db5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a054a17f03bb5cbbb641f678f0057881014147c73a837768b7ede3a125532bdf1da0236c667979c3e131a6ac9cf99218bb668a212f0e1587e4f3f1bb2c422059faa9f90234820255850a3e9ab80083084e2094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4a07b4959191a1d9b9f1b9d7b2d81f27ac5d0bbf295a0fa6e711ade9e888d169ab0c85f7941c383d79bc5fa6e0d23df85a39240727552803d176690519414b2bafe9d4cf2cc3ba077075f652873df1968adaedf5fe80d9786f0413fa516854f370cf70f58796ea5b9a880640d898874fdad0dadb6402f8086ed3c671fcef825aa24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a00b495ab6333f98f467599b047e4448fb952fdfa1d1044d7ac66b97a0d5332c2ea050054dfbe471cd95278b0d4cf9c7afdcb9be216ed79413df83907cae64b8e4f302f9021c0182061e8507558bdb008513580673048308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a42f26e2c7f40cfcd6d1d3e0cab9b9bbf98a5d4e47cb114110b770c3c854f59e4f687315e5f218f1b48986a3e80f5b10b86079ef914d0673c9f98f19fe4c206898951400eaf551dda3ba916dccba7742f8634a39335b7db03a5c8988508c33c6ca4b09b3f6f27ceb5ccd8b90b73ce2ef6199907132ee96c2e518ff9a3f14ff0e4e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a009dd9e55f0c99d34b5fe21297f7dc6b02a5629aebda2314c8bb9624942b09cf8a054c8a8af6878eb36605944cb50145c9c1009ee19ba27b01432768098845094c802f9021a017a8506fc23ac00850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aa6939c52c86a280bd6554c4bdd9c01018a686b2338ea6c69650e86ecd39711e068295d691f18dd00307230424c0ce98759eee2b172613fb27b76a1061752c4ece8e63c8a5b994d2a2f50bace168e2305472e12c8d87fbac40a913f00a235b4825d88d7fd2b74ccea50449ad3d5dd2baa127ad9c2a856eb50e33387d689fc2d4978f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0f408fca6e722261ccb898055570cfe208079371d88973a6673f6f7912d2081afa052286c2908e634d2c2ccda2a3bc3e0e174a373a80f107a657c57ecfb20edb88902f90363018278b0808502ae870323830f42409400000000500e2fece27a7600435d0c48d64e0c00852331b855609b98a469d741ffe634154cd2f94dff4b8be907940340a4267f000000f902d7f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0245d32d2da911ebe35956892a50b3686a5bbeb9c3bc6e8bd766cbdeada720e9ea072f864fb980cc162d5448982ebea90aa29973299e5f61bebdc7eff18a3287e68f8dd94a469d741ffe634154cd2f94dff4b8be907940340f8c6a0000000000000000000000000000000000000000000000000000000000000000aa0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009f9018394ed40834a13129509a89be39a9be9c0e96a0ddd71f9016ba02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b25aa022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca7128ba022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b3a03df697e29dcbc9356a8d5ef9669e344918fc2193fda97fb5e7316bd981ab393aa02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a861dba02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b259a00000000000000000000000000000000000000000000000000000000000000000a0124e578617cded055fba15fa5032dc1dbf226beaa65fec9860c9705f4b2b1ecca022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b4a0000000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000006d69403e2b9a4a88c27c996bae7a2f1ff62faec3ce795c001a0f8be51833e401f9dabf20a4270e652c50a02c52d7a615ea86ef7ada47cb43225a025f2cdbfae4d0671f2f29fea5adf361f6778582980d4c4c95de603bca0e546c302f9019301258506c088e2008506c088e2008304b7ab9425553828f22bdd19a20e4f12f052903cb474a33580b9012438ed173900000000000000000000000000000000000000000000000000000000b2d05e0000000000000000000000000000000000000000000000000981cb2bea70c71c8e00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000fb088f3ce393b4e1cd98a1a0c9aef18bb0a5cf4100000000000000000000000000000000000000000000000000000000638206af0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ed40834a13129509a89be39a9be9c0e96a0ddd71c001a0baf3a0cb192f158f8962e2acceeda750edeb4f51f8d5649fdcdfe7077e4c4f94a04859ba8de92e6216a2c5651bdf7099fbe7475ed9d39860d0eaf2083d10c30eea02f902f8018278b185141f29ef378516cdb0f25a83030c589400000000500e2fece27a7600435d0c48d64e0c008525c5500000af9da469d741ffe634154cd2f94dff4b8be907940340ed40834a13129509a89be39a9be9c0e96a0ddd71a4267e000000f90253d69403e2b9a4a88c27c996bae7a2f1ff62faec3ce795c0f89b94a469d741ffe634154cd2f94dff4b8be907940340f884a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0245d32d2da911ebe35956892a50b3686a5bbeb9c3bc6e8bd766cbdeada720e9ea072f864fb980cc162d5448982ebea90aa29973299e5f61bebdc7eff18a3287e68f9014194ed40834a13129509a89be39a9be9c0e96a0ddd71f90129a0000000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000006a022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca7128ba022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b4a03df697e29dcbc9356a8d5ef9669e344918fc2193fda97fb5e7316bd981ab393aa02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b25aa0124e578617cded055fba15fa5032dc1dbf226beaa65fec9860c9705f4b2b1ecca00000000000000000000000000000000000000000000000000000000000000000a02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a861db01a0788ddd7a8f3630b9d657366222942980cbed3178b411ab43b42ba2874486c9a7a078de7befe356d9cec73e10e645e3f8c121ff74588d56789b732317d1eb006bca02f9023b01819a8505d21dba00850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdb089c4a656f5e2cc441099febcbdaa0adbf04c1791cea41884f251c26adb64a4285cc45db4703ef6943852b9b73a249def3d0bf34824ea9f06b6340bf7aaa23d9a756c2f06b203e5ad8a1892b512b5b9bc840f76bf41177cad761a965b188f9eebc50061c39d54d33c09952f6cee90bc1270e81539ca4fd7d58f3dc006d547b72b23902eff9f9f3eff1f8031299f27d86f44118fa4a7341e7549c672dd27d5870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07691df199e0dbfc09370bd5d82e8241703def1f94b2203bb6139b1fa568d7942a03a1bd708e1912d1840234db943ab293787d70472241f8d25cffe83ce1487aa79f902322e850861c4680083084fc094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7b3ec7d8dbf6360e35253d0a2ab71b23d616fff30d1e13eee340eff21aa6b55c6acb89d205f74564d979747596f4f7bcc2a43ab54eb107cc5df90591644fa4f26f1b1c964c50f29a2310a3864059850ae92f1344be7b4f6d7c62e882a29d822e6d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a0a59c7fb968ce3b9daf3dc5e0603c1072f2119727996d133ed83781bd52cc0d30a042c644a19ca2d62d98d9255c8e631b5b2963343c4d8b34c8785c809ba46974e902f9023a01758504a817c800850826299e008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7855d214a101f80ee54d7056597b37e2b014a03debda3886f4698d394f3552c3bc2ba24e3723731d7db0cf4ce9667cf68d10940be9af37c798d98b96cc861cac54927259b6daad949ba933e3899d4752e9e6566e49b1e59e606ec64ef07f5d115c65052bff0e03c51fb48f6717821b42be97e6c2633cb2c1ae2597f7c5386db89a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08b68eeb9cc88d3397c5effa1da10b89de247e470b58d3aa5d47bd40ddbfd683ca02ada6bcced6fa0de8445a4cd8c79e1ebe094179656abeabdd6ccf27482752a9002f9023a01518504a817c8008509502f90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000baef8297e0d30d40d87353484af0c205d1fc9f09cfe216985fbbeb22750cd5575a427e76751a3c54bb1abc4f31f63e5f3d98367d17e683e6ad61e879bf793209f8aba446591ae08855364c9d460ceafdd8d340fe95f8a6ff333be53b1201272cbbe4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e597f2507eb32d615709a8096729f8e93d76f3b2e282b024665ac3c8849aef6ea022a873597a912acb0dc4c3c1f4525210c2d7f9fcdc6c788e5e1a2d9e505e5e8002f9023c0182025b8504a817c8008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b50bea470a810b9a44e8edd5e07855a9e7bb32f001eba392b9d97afc8908a145366e2de2f555044ab55217e36030826d5fec0bd4f57f4d2546db7d1c06aaa5aaa4e958362f8f11d2af8a2e7ab4e350bfb1cc304d930767af5e1f72a64d8d709887b8e382938307571430d6f237192da325989241fa10faa873d51224408ad85cf3888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07d73dddd32ecf6466811400c5aa7030d62c0fcfe2357f5978d886eb186bdc002a040dadd94d33b5c9525dba7d771632733fe8268dd50ee0f7a53e81147a13afb97f901308208cd850700bf1b088303e418941111111254eeb25477b68fb85ed929f73a96058280b8c80502b1c5000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000021f92658262f80fd0000000000000000000000000000000000000000000000098b7d7ea849276a6c0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000003b6d0340a469d741ffe634154cd2f94dff4b8be907940340e26b997725a0bf3a8076a4cd912dc3f191159d32edc47f0d3f9c36af302326079457e4b91067a030e86082aa7281f4856f03620f1407abcd6a712d6be7be0b5a5df7c01a92ec0302f9021b0181b085037e11d600852e90edd0008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a6bdffb558ab93d40337f1f86b6a78c339ee8e701a993e3423b6895f45cc2bedecfa6f8e3cc6e275bccb95a387c3bc7a65cbd9ba18489786dc692efab9a77cd7e71f8352e1629f66a21631954386c7f1ded22b3c71a6e48d806dc96a0517fffd01c6b0ee43294536b92a2737ed589fec94d21534859ac21eb9e279ec06504f50778f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d070296f8b13ebc10af77e8699518d46201d01876a40d0ddbd4beeb92253df0ca03754c9d50429dfbe617cab7b78291c16929b3360d352ae878d4da9d00ff998c302f9021a012485037e11d6008522ecb25c008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a25f3433e6eb797b90010bd66d802c9db7193bdfbca289e7f932b686a28319b95eb346740d7597ed6f0aca39af7747a82ccd9658984165d043832a183d1fc56fe6a045915cb59702356344e05a76d75eba1bcf7889618de851c8fe5bcf4193012e51d4f4c182e17e6c50e69bf305527680e005a6abe3b367aad091acda0238374ba63c0fdcdf7e22d3e03dd751a495249339c2dababf333a1bc91f55cf6fe5c84f2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a06371597b3055660334ce263ab9891ab48ccd3c4c48b3f6d2d625b184592f198ea04fc4de8ab5d0da976d509082230bddbadf7f25d4d5e7bf9903c78cc4a71ddf89f9023381fc8505d21dba0083084f7094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba7a541c0eca0980a2c25b4059c582fc738acd2f479b9494094fefce702d02c0bd1eaa743b35b207e29f0fbcf3e4aaa4203c32064b790ee1f0dfc99bde414980cc0f2dba35615ac2592dc1d6b8fb26e39b7246c16d96ad15a12809678a0e37ed76d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a06ddea7e5dda69089993cd62547d6ffa126fc6a397614a14e407165e81f2e7c64a03c6cc4943a2e4273664fe7d8e75eabd6ca2dbd6ef359b5fa7960aa7a838b70c002f901fa01778504a817c8008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009ee287a183ca622f382bf36dfdcc878ac46aa29c1238d3b9aa630313df095e93f599751c430d0af9c83aaa893ef9d7e869ca37017b78645ba4746547866d2a36b4d074d7c288e87c7c83ac94218e37c893dfb593f959781d38ab7da5c144a1b24379c68415c9beac8697de0b6e09ecdeb979ed4dd950db7cea20f0ec251cc3c7fed220f04e94ab022c296ae9584d24eb79a4ba3b814090b8de476fac2b8526ce49e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0f5b49d95fac7dd470c39506397158b594cad98bfbbe123d8a728f67f71373db3a0488f5f9086d999ec87c7a6449588d4dcf6b3b0438408037d34ba4172c14ef87c02f9021c0182048d8502540be40085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a9562b24de5bfeac371352355f1b24decb9b37b60e6bb3a046028f86ee3efbd1a75447b2be82ae84ce6b0094e2e4f6603a46fcd561d8ad08e2b2fe2e8be0f5f88a96e11e066144d909529bc0bea1c8695d0e320b4112ff498ab9c2b5d6b7bfb5b57ac235ea98aaf9d6bbb661759f4850633cddea79fdb818c183e27aff75856c4e68e16c59423e104367604622139af9cf090e61899f48cb546f5cb2d14d6d55a6036917a0c38e9bc8a8e5fae1bc68edda5ea467d98ad83bed995feed0ecfd3e1129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a08e24d843c05ea20580c18281480d2b36ba81cf9ab52ed54401413ca47d1a4a28a0498e98b5d2ed154ed8b31905e044887a09ac1085850aa3800b38302d4f3b597902f9023c0182016b8502540be40085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc2d133850b3825def8ede3bf0cda4590448bf2df5faf5118f9ceb9200594f9c448bb34023acc41b666d1dd5a39ab7e056199d0b66d6cf2e493b184451b2b68c5be1bbcf99123ded8e17d7134e061d3acff95ff2448f48fd5ace24e0fb165bf34f77ba808002882f5ad3e4a3d593212291dc1adb4a2c2883826fa2eab7487e13e9a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a052733887f1dcb848a42de5c674c4830b8eb8ca354e3d046f67d31515fda8a66ca0083e22a0ef2651e140cec5727b5ffad9531cf40798fc8bd4f9a859b5b84f09f902f9021a01028502363e7f008505584dc0fc8308ed2894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aa3c773be8bc1382183378836a223aab62bb0d6889d8b6dc25adc67868a433a11d37ffcc260fd63ceb43d101e45663ecd0e42b3de784f5938c73b9c11998d844b7963118588116a64dedbeec0dc33397f366921c0e35f19c0ae4412ee11e114c29467c640a6e37406a471a0963268dad95dd69341812624eff05606d06e436423785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09b8b42b8b5c85276785f49f5b32d494b6448e3f1d8c06eb1373550a51af9392da0631d70f1cb6cf4d29ce86571e24ddf6a2971773ecd371d4639319c6d6907281a02f86f01825971850218711a00850bc0adbf6483061a80946b9aa8ba525bcbfaf010aaf92e0f8da98c76959f8080c001a06a727b1c2484c9a4882be69b9ac801071c3fc610c7c68808fe63b67cfb7a0413a040a12120c89ae04faf7e20f3c7ddb232b74cb31c3a4337bd8e4287af34860e1702f9021b0181a78504a817c8008504a817c8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a256dda8920dcd4a5c04490050b9478e6c166c9b974f89eb56a10e8a7d473cc04f5c5f82bab15721606b38b333df1cabe5f1c0b8da4449a32a1388cef0d65ebcb7750ad06f7c3255aba180fc177d12975f243bb1211dd0ba2baf214e2a5509d4cd0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d18a7711df9da7d112c0ac2bb544461f82ce9271583443985a1640d4b3e05d8ca01e799c8df62b788d90a1442b259ee6d706d7150cf3391383440c8298758af728f90149128504a817c80082d6d894c36cf0cfcb5d905b8b513860db0cfe63f6cf9f5c80b8e43db0f8ab0000000000000000000000005ab8ca7e7984fd8e9e9e5ca7b5b77b98214f611d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000005bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000126a0b71d4d454b7ad08d99b7522c947ceccad2796c255c07e7a9e2b07eae2ca0ca90a023ce5af9a30e842fd15f04ababae0b7654d06ae32de14e9a0d11282be2b4b732f86f8304f2a78504a817c80083015f9094d181e690799612e9b22a413e78a5609359e9ca9b87d60298ba4d68008026a0a5b28026eb44ec9b32d35926ba20093ed8f032a598693d69fba30742cc08b11aa05a826604a03b9b3f07bfccb4cb8b96dd42d429db73f8a927d5895ca2c17691f002f901fb0181a78501dcd650008513ca6512008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000093d196ef281f0478c9c0814d7b553dc7fd38181ffa297ec326ee030adf5d63b6f5f2f7f8cb5a7c02b54825b233f25f811802148be2635373df49081047ef63cb538f942b721541a3415a609d0abfef271e5fe02dc284cfb677a1bc4f039506ce1e73a79fbc577fae7de1955e0e18d0e94cc3e2be4fd63f9f856f72365c04724d47aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0f2e18e1ed2b27aafb928ef8e64bbdde2fe52fd042ae1d060ff8dc8b52278433ca0652534270329e1e53ac219de55a4fc1324545b6c920d9162e80892eefc4b0226f902348201108503e95ba8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1c5f3bc9ed581ffe9dfb22ae8a5a95332ed3188f295c1814b1aaed40e59e8381edf363f0ada6ffe81b08e543271d02e6137102a89ab110acc1a88d49b3cb7ebe4e958362f8f11d2af8a2e7ab4e350bfb1cc304d930767af5e1f72a64d8d709887b8e382938307571430d6f237192da325989241fa10faa873d51224408ad85cf3888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a04c0a20ac0a13fb6d90097e18a71c80736bb2b1415a66e6c350499e404e6ab756a06353aec70426b13b474509ec5605da6267cdc151b8e5bdf79e10b3cc70a260d4f902127e8503e95ba8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a7fe8b2f119009b4f4e6ec368feb9699385f99787aa69e5cdf273a8f3f8780968b288fef321ccbbe17946428e2336ab9df34af4a903a6d6e898e75732572d7e51b2b75453e3fc733f9241681faace1633ff6252989ade7ab7b10e10cc367fc2a2e8e6a9ec934b7159150528e2eaf915105561956da23ade19970cebf849b88211f0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e6226a0732b217d86cdd192e18e0eadc0504119311e3fe10b1b2d5d454cf5de612cc3b4a05087d2e9d5e7c2beff0f03bc2aea8a3c2afd173a4ac517cddbb8b8564c063d4502f9032801828ee5808504ec65d5e0830493e09487d9da48db6e1f925cb67d3b7d2a292846c24cf780b901042b81bc8700000000000000000000000000000000000000000000000004b73fcfe157caae00000000000000000000000000000000000000000000039d5c1a27d6bb200000000000000000000000000000c09bf2b1bc8725903c509e8caeef9190857215a8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063820025000000000000000000000000abd69d0fac4b0851dafe100979df808eb7fb81a90000000000000000000000000000000000000000000000000002367c6036204ef901b6f8dd94c09bf2b1bc8725903c509e8caeef9190857215a8f8c6a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000006f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07bfd1e1b28458bb4f5f19c57111a67018995cb84791030d95e1961bcdc99e256a0113d4cfc2eb9a0e7c9f48ec60bfd3dc70eaed8580af1972f589aa41c044429d1f87a9473d7c860998ca3c01ce8c808f5577d94d545d1b4f863a00000000000000000000000000000000000000000000000000000000000000008a0113d4cfc2eb9a0e7c9f48ec60bfd3dc70eaed8580af1972f589aa41c044429d1a061619f4ff8176f9002dd5ab3523e6aa4aa7eea503fc92d6effaf2faab13e801680a012b6ff41736eec4147c38559a9dc5190b5af57265e01af5ff53b6cc83ee42dbea002e956bb005a76e38f2bff34cbd33c155a5465ee4c1bd06d2215b31c3c215f1502f9021c018201ca85012a05f20085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a0e91f725d2c0dd31115587561ef336ca683c624974d1a713641a7268f2a2c3dc39548c4e34f0ae652449696fb706bc8e258a3f8d4e6e849e39e5584b0e9ad1bca33837566fb054d78a3870d660451d5a9c6bf3b841e52769087e1104a9587f0392c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a043c8ef4602f79f5435c592fedd10e4bd0f15743d3b203bd16f9205804ca99f75a0068ed0cab060dc76e7f86b22a21263347094c33d85263c8572f604af6e88616f02f90113018206a584ee6b28008505d21dba00830231e794ca6d7604ae55ba1ba864c26692a91979f25cdb9680b8a4962cb60200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000041fa8dbfc7cc1b59cad19b93fb8ae3030314c083724f98befa2c8c7bfe210faf4f4f3c3770797758755ae9f2ec2a512e2fe32e41f3a6f406e33e108dbe32e318dc1b00000000000000000000000000000000000000000000000000000000000000c001a093e7b7a2209132d8d00503609823e0a483546a56f7962cdd080b202fd973fde9a00ed98119678c03e644bc850600a22ffbce9856ecbcbf27c8581e87bd7fc7760df901b28085039bdf3b0082dea894ede26ccc85ae521d06b5ef2604952a421c9124b68817207a9b6760cc00b90144f1e03d67a555c465a2c6494d9520364b884667aa00000000000000000000000000000000000000000000000000000000464e54188ae628be286496d7bc0b21a6cd4aad0a00000000000000000000000028d1b3793be15f0edbd404292a9cc10c2e08722800000000000000000000000000000000000000000000000017207a9b6760cc0000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000ad2000000000000000000000000000000000000000000000000000000006382a89e000000000000000000000000000000000000000000000000000000000000001ca5584fbb7c4603a0f43ffdd7befeed0d1561525d93ca20006ecc6220097317261497d89bb07d061ffa08da6247bf46b8bb57172a4d34faa369e0dd89cc9d406825a04a70c813f4858109d648374110334897e59d410d7d5b65de8c0de6344628d1baa0545157e6397ee7e0532f04235c42947c8ae84ad821be11dcbcd89d76e55b9f6bf8708373acaa85039ba41a1d8305573094456046280bb4dfd5afe340ad269abbea772370d8881bb3376cbbae00008026a0bd29d90317faf93dfd7b1f9e17198585de820f3d9eda8b99859537e04b4c494ba06002b8d82dd30015d9fed2ee3303ab1bb14f7080003fd46f5db1d49afcdfe543f8a90285037e11d5ff82ea609405237e2bd2dfab39a135d254cabae94b183c8bad80b844a9059cbb000000000000000000000000d947e806c01ae61dea449458ff8464c62714cff00000000000000000000000000000000000000000000000000000078369f8720025a08d692b3b4d483c8b20a3b1d92d607e0ee2e4aec43b4d38f9cf9a46a70ef0bd09a01072efc98bd4ab359402ad8640e2eb370537996950efe02d1c670162d4b8ca1602f9023b0182010584b2d05e008504e3b292008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bceb1191c091b11dc0bdd60703d510d82d6f6819420e96cca481d81090835f8a005ab6a01a4f0f0e3e5ded83648b79190602395df2ef89318f456ac3a2e63145f676e88cb89dc6a5c7cb54eef906f4e55947e60f19cb82945e83baae54f9f0bd1a65e3b79cdf73a12bf37ce442a6cc3a9c2cbab7ad1046373fac1a0041fb8b75f228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0efc39d27a223cb3082672e357286b2b05f27fb7157e703dee77d1fa4c9cfa851a060cd3104bcab99d366bf4d5251d93f2531723c6bfc8f56b2c165c9b20658db4302f9023b018203cb84b2d05e00850b2d05e0008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b34f98320a73532059fae6178e188f4eee471e157968fe99a90e1323fd0e5edab60276167e5b01e5f631b47561a7ec0886e58751b7081772c8409ab854b28c4a31edec07336bc39fdea2bcc2b55aca9df43ca5f8f5b2dbb1e5e64299e93e840ed5fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bcbc0aeedd8e8b6e5a9b766a19e3d2eb57001cfb937fb76378a039388fedfce3a06a24e6f824e411a2acea833374df0241b3c039f092b8b37d1750819924a7080002f8b30182073484b2d05e008506fc23ac008307a1209476c5449f4950f6338a393f53cda8b53b0cd3ca3a80b844095ea7b30000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0179e95faf9d4759795cd8c6645decd9758999b383e565df0224669d716b2aa68a03188edd85ae37513c0194d847be0783cad646df7a197d7a745a8663ecbd8041102f9021a0181dc84b2d05e0085104c533c008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae9d225d9e05cf7ce1dc63a73601a7c8d2e7942b4143b6b37693faf946649a1d4789cd0960ea44bc6f0305ad872961a21cb28dbac7626136aa45f502eccc01523b4bfbfa4674225ba36f33c355a3eb6b375c4be7ab56dee23c3ef91477f82925710ae82141d13083170fa2d6d3036716f418d71ea863aad029f828eac4bf857c932e3276095e5232ac252337a3d6a4fec51886748206434b7dcceeea368a3c00bf2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0e5e37a347b8517a312843127e6c3cc4c9cdd304434e9200e47f90a2bff93d07ea040bf99603dcec702aa7308a19eb45ca3520aab5442ee93d5ab34a40063287ada02f90219012484b2d05e0085181b2c03e48304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ac1677c2d8aebe3c74d31d59ee170413bd3582f9ad62828460d74566a6a18bb3da2a4231c4d3d627ad779f60cf612b5edb53c7804d11552df07248bd30625a4a69ddd7f66185fc195af8fef05ffc4b5fbfe060ef55c3af75df4e9f043bf8754e4decf5e4e1131c590645de42305afd041f1b15fbb4e5c53fca066d72efc15d863e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a07e462ce311a1e635888a945b6c045963cc4ccf36cb9eaf96a97b347d3987b9d6a0102dbea1eb1255d9d508b7ff34cd3134159e6bf2d175d97074ae1eccc0ce826202f9023a01818384b2d05e008509502f90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be727e46ed97d93bd4cd30332f8fd13ca0e6f96ee39dca9197eed23b36662b802bc2ba24e3723731d7db0cf4ce9667cf68d10940be9af37c798d98b96cc861cac54927259b6daad949ba933e3899d4752e9e6566e49b1e59e606ec64ef07f5d115c65052bff0e03c51fb48f6717821b42be97e6c2633cb2c1ae2597f7c5386db89a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0567c52127a208a82d2b6f1b685ba8f09915af71069718d05338cf644ae6fd04aa0529e78f32790e920dbfb932c8b078ec180f1746e8c496bdc0a1d578b90a99ea502f9033401824ac284b2d05e008503cb5a933083181959943caca7b48d0573d793d3b0279b5f0029180e83b680b902c4b87b0b4c000000000000000000000000b3f5503f93d5ef84b06993a1975b9d21b962892f0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000224ad558ab90000000000000000000000001a5309f208f161a393e8b5a253de8ab894a6718800000000000000000000000027e606fdb5c922f8213dc588a434bf7583697866000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000018bdb3eee6151a000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c7d393100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0308813996e157e91eed63c6eafa2633194ed1bec848dae1dd0cb4a24b41fccdca07086d13de05e62a3d9ee6878bd8329f4885cddeec2a97adae810ef66a393205ff90233819e85035a4e90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba8b5a6374a8061a364bad98aad8a7dbb29dd5a328c682c2b344a1a8203446b320010df544c65e4545e421ba5c6f6462a012285fcf2761648d5f9ef424a82865ce52180099a30a501cfe898da153068e42ea4c76d92c1cbee8dfa699c20f1a6db0db86768464f964263b4d04fdcb22dc7fa92617721a737a16f279f245402f172ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0d445578f2b90dcf950b9743dd196057c291bb50eae79995655f59c284e0a9edba05e96cbde366c65bf207827aea9316d1eb1baa0b759197d69ff476c9aa6eb7102f8aa0185035a4e90008301027f94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000009994690f3cbd70d977467db0c0b6141b76a96b4c00000000000000000000000000000000000000000000000000000002d049574326a079c738fe2ac2a31db664c41c104f3403a0cd74d0f99dc7023b034353c50d6de5a06e38151af6e93d32708f944ce06cc7c359793f754eca0514c98f10fe12a7374ef9023482015085035a4e90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3870d0649e85c7431ee92925bcb82c42c353a6b3ae7087f812305a64e1f5cc35052c458154c09049dd11bed37a131553ab46d1ef3bb157980b111fb69d796783ed2cf250786a0c103b31b1af72c40e34cba68e463879df224a173c19bb493713116a56e0a9b1719b7de2653bcde0fa2f2b9a29368b85d3c8a4cb76b1f067cc2ae638493b504c4955b832bc4cd7aa2f05208f6a8480eddb8dad4d67b6bced37a8ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a012d90904c1df9bc0560cdcf1081cba7d5571a1906593292f2be437286afc911aa047e4159ba406e113314094c2af0279290cc43c5f0711fe2ce3115a8e0ed3be4502f9023b0182018e84a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc6379e4707c378a1b48f59ae328130adedeeee2be01e6897877205763d7320a4b100c46ab99a80b5930df4ac91e21ceb7677f81c185ef23e53d94e44ca86798e4b99cc1dbfeb7777d48b5728fe8e73e597158c2d3542e22c2bef2027211c070e05af0660f0c3354b734e06a9427e13e840a916b5cbdd5eda4e40c2d60dd21a57a24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0f3a64da686d1e20581ef1d813d67c27058259a968824db27cca858b82f4a936da04b28765ac7cdee137aaf54134e06c913db895888a42979cbd794d54f66cf9ce502f90239012084a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be6674ebbfbc519d5958c8d943967b369ca7fd39e41fa5dcdc74b9e819dece2d9d1eaa743b35b207e29f0fbcf3e4aaa4203c32064b790ee1f0dfc99bde414980cc0f2dba35615ac2592dc1d6b8fb26e39b7246c16d96ad15a12809678a0e37ed76d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a02b75240daa730b4ad9257ab25234f9eff07da7d95dac9a47e8a9bb8d071b0711a03fe8064f1675ca9e6b31f1e4e8fe6d0a1be0d4b8bf64a8dc15aa93d033990eba02f90239010684a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b21635d6387d997b93425b3637984411332620af98f38631f937fe97a8ca68d5a92463a1b9f155e20d4cbd385ec7fb1718d47d213f9ffc0c309f4a7f7bfeeb608cf4648c423447fb310378a6cf3392d3796ff1bc240d37fadfbcadedf2440324a6667e37f619c7a26f38bfea08235d5cc8404ff299b8033493682b2d73fe24d7a9c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a04f9baff53981a3816b217e3b7f37943f79d73ff9375e5b602f99d8a9bd49406fa04fca136a718378b52eeb3ffafc50fd46d8a33dd8277751bc57684c358c31a8be02f9023a01818184a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b99497bc6c8e20939efcf81d0cd34182cdc3435e2a7d94154b162236b840f2a3630f1857e06949437fc37d922f5a3d8f9eb505c85b17bfdb4dae50834af0f5af52c63114896df964394ce28735228db04db1fb7d9e53b4cbca4ccb2f0f1af530ebfae2cc4a04753549155cda73390e77a0898157e5da2ae4acd9089f1539067351c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a070de19bc55e9e30f14306471958642a137d7f5f79832005418cff36ccfa6bfe7a0214f222945ccde51a1477885cbaf79708e304309f64bc2ce9e04d8dc19434b51f86d82770b850346dd16ca82520894fbf083f0d2a9092fdca9aee7430a44bef152d369876379da05b60000801ca086fb17125c8be899ddd314d63cb36a72326c6e51c632ffb4bfbf73e22029044aa017dee11923750fb5ddde0bff31dc1a3e5ec85dce5dac19fb3bc6c480c8010b5702f9023a018192849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb39e62ba9fa90a052eb76bc81c9422b13c8ca59eeecb796afc9f8fb4c78c3b2ae8c7585e43abf49d73247799cdb2af950d77bb044a7660ee30bfe3a227ffcd8dab138c9d5b45c6ece7a9a2ffc869ca8d60dd94ea9dec8b19c668a98875b772105bcda5c06911aeb660abba38421c0ff56a426281f61fb53eb000f147f02d9a151c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00ebdc320e421e4d10200a88989abba6a2755790bb51621eaa6c7cd734b87f8aaa01d663cf6ec10c685dea6972d563af56d47b1f3e86b7dfb386c7688efd76c5f5c02f9023a018195849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3c2351fb8c1decd56b42811597216a1731798475e8b823a51bddafaceb2cf3f80f947e2920086274197649c1092b26a22c06af8b85f5e79b93f5752e77e1eb7ced833eb1d944639dac5d6576acac9527fd5e50b3be3a5f0bdffac713d622b81ca8c9ce932c51b7569e70fad2b348efbfded890dfaf8a8b43f9ef9780c40e47316f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a056bfc62c17131dbe50300e6ddc1a939c2e95b879a82908dab033452750ea2f20a0077f99b9fad50d032dda80ca029039fe6b8780fd4427622f5a4c9291bfd6708002f90239011d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000beef5923d4fefe8473ee7de7ffe7fa26c8faf668dc19a2149658ed3e21fdf0ce2efa95f210be598d32974c5a17a399c1d07d1595e60614a5e9a2c988b90decf04aa503d2e2fc07673bac6f0c192da6899a662e13280a43ab0a76502689fac8f382e85b023c706bb0694762973ec8ba6a13e907b6894e00898fd3444968f555bfdeed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0ae53e6725660dffb80c9dc44bcc4f968a3eaa69ca2f9d83f0c15eb28859b4fd9a051ad3368ff606f106758a7162d11d34ee36e6da8579d2eb087524b48f496d59102f902390173849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b18493c5471a4c5a91733120f4fa4d0b5ee1943b317b44f0f942e04c44b29a5f8b0b2dc5bd3ffa19c420efa98da6c333272819beebadd2ae840de658a5a4b4a5016e447315ace9c41b1861774b36838281e6cf85d9dd53ae8ca8823f9d216f129dc1fca82427e68dd7b52eeb8ac01ee60a2a8fc84a7a68efbbd1a0e30ebabd02bca2fac698de5d0738c7811fd3124aebc22e52367beb65d084d958cc9cb9eba252ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0fdedba0fc90dc5e79861b3dc6cb8f3270778fee5443ec1a9d24a3f7489938b8fa01cc3ef3adc1f59d1810c94c3ca431f9255de7cea078cae8496f0a3a058e2583602f902390149849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4bc07f8765b668852601d284d246dbd67c023bc1da388d731271faef33263656fcd1fe2a802b05783945d4c36fe9c1c71752f86d8c885234d61f4b52fae327704e7077818f1d7d89fa63fc0832b1ac7d0d983b7e8f9e7e2b8f1a7aa4c276bdee8c476bb69dcbe9a4af4cd65265b53a8a1c5df99123653e583ae510e81341fefcad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0ee26138b2c626e50eb95d85043c2eedab9a51e429fe03fa7f1ee2956fa05593ca07ccab12aee24d902b64735a09087aea4059f7dc438a34a6759976d527a76d1aa02f902390153849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bae968bdbb6945b789b93803da45a62ea16920f45fb69a3c0f91dbd9c35f10aa8fa0c956d059f3f9cbec5b04253f00f73060de3e9b18b8f5646fd8ad61dd19aa96c86c2577bd18956cfa3d48129259a335b791f89c04f972380e60dab571b82d28da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a066369605683b3d99e90fb7be670a7ae76c0890e1170665b726739f5489e175f3a066c9dde909ff63f6c60364c3b42ce9e7f160da600ec71072f7a20a92a7598c8002f9023b0182010e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b480273f77d83ecdfbfec5b57cf43c69c82ae5725a3c98940331ff61582e6e71a4cea9dc6c2e8975fc0679486c80cfbb363afd3bb163cb0f845bb065b802d3a5a67213571b553445b9a52f7cc984e7c586c0daab4dc9acffe9c3fa975c8dbfc443c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a064e9877e59512565130384dc762eba575f0247d2414c8aabee3ffc805720802fa06a5e262396ec79b96fd3075994bb3ae433f682ce86b9216a595cd75f075852db02f90239015d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b268af0d6d315ea9c0d5c6382fc2678e91bd74cbb19f75c972c34c6987c7eabcc4cea9dc6c2e8975fc0679486c80cfbb363afd3bb163cb0f845bb065b802d3a5a67213571b553445b9a52f7cc984e7c586c0daab4dc9acffe9c3fa975c8dbfc443c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00db24ab17fced436faa46067a737c1d9e1bf627e6b300431788736984e5133daa05ce898f66c9f0758f45562dc5b30f3233b8da1edc5eeaaf5e59f0707d1b86b3002f8700136849502f9008504dc3b2a048307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0e4434142219f93de767bc20bb10004a17f411a28620daf16d8d02dba9bd25364a07a85ac2afdd34f36dd581789b6b39a2051f3baf0dcec3a23d13e8b2a5635eb1e02f9023a018187849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b253745fe74841d4e4ac09a0eed34aad0ba7063d50297a7ac47eb8be585eea20db98f849432cbf66b111e8394825ed2b837ecb7f41d1646f1eff21736b5334162036c70f758b841956492bc4af99d8efbd1d353b0c3fee9024829a2e590099869c4f25e0ba4cef2cea3b6ec94959895c35959601869ae03e3958a91f1c03550258dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a011fa61982e2b6f68317022639803d34b77246f55edb312a16a3f306903906e71a020e0f379c6afd1ce89c72a018077c6b7055b546eaf0c9f694854c53457c4ccfb02f901f90102849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009ec5651812086878c3de7814746c26d8e3332ff4a9d154bdfb6455735a940a336dfe4989c3323bf53d08ac7450d979fc0a92f54dcbe3cdd51df8c6f66359bd94c0d3669e0708e9542665e4396247ba04d243c81b4479355ce2df33888c9e0b50504b5e992379c4d3ee343745728e612df3e9676a94c905a59be7b1f3beba3241d2fae1249bd417a9e9c0f5c8c8b276c9574b7637e276eaa4c8b23d4cba87debdd718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0fa1d65fd081a92db254aa12ad3da3735f6a5d5fbdbb4d088478302312e520eb5a023ab66e8c699073a0e98602ad3c591d69f45e183ee6a18e9b5cf641b06e6858802f9027a0168849502f9008505584dc0fc830f700994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88025bf6196bd10000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b3fb64426b13305463a1e7a926399dcf62a972d906ddfd227039fd904059a84ef41f58390de847d8c359cf9bc0958c2dbcf36bbb7c3b7449cca8aef7a09e7d470c58392730cd2fdaa42c05cb894af03cdb84aea7f4a35c29424107fd76ae911c51a000bd0b2081757b50ed135366091621048c5fca2e33c7c55aa995176b4a3ce9d69e2074a60ca8082feca2cf790323dcaee36ca7d5bd5a5eff1c785118da0e6eb4e297c388289f40331a599c712a7b67b756f84b98b0cb207da5231d4d3d29b273f11011a9233ef1fd6c504fc555bce333eceb3d1e4e8f69874b75f6d856d531aff4e550b5383b62ece606f193a21eb2ea67c3d75bb0768790978af2b6773f0f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a07a64532afeca0bfe9affbbf65600ee754f80faf79f13b42dcd845cfd041f3bb0a075f8cae904b99f5b12bebc153bdf0c5edcb3d5fca4de86873258301129d4be7a02f901f90154849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000097bf5a6885b2d7429c455eaf29234153bcda6c9c913ca79940b5e3e0807ebfa7ba16dab20521d795fe8776a851828db6d1bbe36d4a4b9d5733dacbc3d8fed57104fa671ec4975cb553cae2b81c79d8f9eb70cf1b92f092b041cfa4c3fbeafbeb33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0111c7e84859964baa2edc06b6fa6f9defa1a5b8cb4e75e9d9d17fb38a79582aca07cc3430b9a84bf3319a23e686e76ed1f16f16cd00a8179865ec3c7e3930cbcad02f9023a0181a1849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba9760e4c602dd27940a9e99dc6845e89b0da73b91a8d7d220c324e7ba5a5f6a71ca26df9e94975bc73fc213764ddc22622e039696c7e0c2b3175f1165580121b6c86c2577bd18956cfa3d48129259a335b791f89c04f972380e60dab571b82d28da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e49f7d431939d4121ade2c2d5c5305c92f233e5781a47e65f9b4c31b8e38c895a03ddd2dc7c4630f82d65292fe4e7a05c4a9015d0ab51477052b61e185e895e7ce02f902390134849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9e195179ff8e95bc06232f4eab3a9922f9c9c159c617da70bcb1b8221df8c486a4e87da5f3cd6439c63304850ddc26ff8cccc529a66e950970caf825b9326a8e7e29d4406d11c42cf40059c11370050cd6a659e89a8d65ffbba46e8fde16f1c71e7e34397d88cddc049bc1c2deae4beb1f6daf6338d1f7aadb51269915be934dc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04103cc62adc5906a5d18cbfb8982a327284b20426191c23e3db72e952f8f842fa0526dcf1f8463a6875680c4517e22f4b1ec3cd562c55114bd9efa55a112d740ce02f90219012c849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a144807997d6584b6db9d3906f3d8bf3ebb6e93cf62e2cc07768c72c054bac120bd5a9c7dd84d0729e06026bfc52156f2ff4c688d0772c189d0bb8130b6def69ce88ab91b9770265f314ca683a03bf93419fcd8923b5ce4c54c9b15825f1298efc8d7aa842f3c81ccb061b9d9632b65f1deea4736433ef39a978e12dacffc938f23975ade81aeb4467ee3d0584113a70343f675b0adc969dca2878343fe459c854e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0196504386e10f44541112713f28995c40ea74f541b6c9927313b4883e975559fa043391279b8dee99edf06dbee66429dbbb307579f2b6578690edb9ffde96b20d802f90238016d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd30b9bf48329cceda119dea3f01831bb46dfe652efb3a3a501e05b463670bac484c3612208a9287153c12a75652aae497d5869b9da4bc47cebc6281444352404f9675072b423cc404548873e99867b92451d173905857a768fbf970e6cba68da9d1a33d161c334d6e7df7d8adf86043cbd67cd85a9388bfa83278f5c59fedc020f157a3d5a8bafe568e0c270de02c72665df09162a5e9547ccac29b07e651a10cba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0809fd49f5fdfd69de6d4c2cb9cdfb20975bfc3d92f06806b355984bbb83a99ac31a01ea36756d656fc6fda4b54fdec59854f3c8b9d4e77100ec45252ca171ede9eae02f9023b018201be849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be25ce5b536a10b9e486afdb7cca97b1a921a3ea54b5817b9fbd8a536b45eb47cbab1dd0ad0d08b855d05aacbacd947e55edfb7d15ca60fbb7a30bfa624b089b0a1245429ffb23db20d43d22d8434d8742d14972cd2d17aed427b80ae5de6603beb6a4d068fa1b355e107c9fe663b0b9ad4b8969b10015a663d3a7a1b28f5861205fc71e2a4dbc946baaa9c64de51e4a875f07d87aff0de8dfff4952e38844850276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0cd27da49876e8a7298803f75e679e931bf9cda7ecc296df9151577d5ff4da639a0440bd3675dd656dc0370b7221a70fe45464d14b562176c59bac5fc916988aa2b02f902190113849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a5bbf41a9b4e1e503a6b53639234ba2264b99c9376fac9b6d918af00a0d8a87171342eb4740c8ea34e3b16a7a539f40f960d2dde26312394459fd4f587b8fbe2258455ca6cc651f761854d33956ca947cfd79685afac2be6ae32a4ff488575c8dda2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d0f5f5a0d6221c7e65de0a505bb4fae7d7a2cad2f9398889bad687dda6326a3ca02074726a54f228a9154ee0e33da41d170214f4f33ec809a990a2d87d5380167b02f9023a0181ca849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5b242e7609999d8767f55676cec40c89ea85b422dd7599b3c7122f8cd5d4b1533d03e0ac80904a0ad91ebc41879494e7e9b567e99214e2c9a8a11805b76648ef07cd927a8dd897d3afb0b2167f0d2e1de9f0d47fba857dda85be2db1dacd336884cb32035c62f3227097b2e8fa05af5711bf7bbaa756b24b9e4ca95852a216e0886dbe84053c9654ee909e5116cd040a38429581726d6d2334965bad30c3a657de5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0021a1c76ac35e3ff5396d5af9f461b674fc0ab8a42f273260e481338c8fc6776a00a3000b3486441540b09bac00ecce1be324d4eb90f9de9ddfb4a5cbbf5afd48b02f871018183849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0e5c17dd0a22eb6bd4376cc26b2247c405e7bd8e0ccc7b7b3f0609e4d0fb57203a00306e3f7f733db17dbe5120d6617198257a50f9d1ee8acdba2155db111c164c902f8720182055f849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a00ec323c8e02ffa1c9662c9c95b3df3958600bf9e67bfbbecdd2cd46e13cc46c6a004c46d07cc33e41323d2fb37696c378b4f170b326ce75bf09ce64e0b2c98daef02f9023b01820200849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b87a39c8b7e5f9dc10afdc2c67e5257c43758017dae7c460d5daf57a7f6276c51c5065487e269107a966aa5e469d591ab9e888cd204059453a104ac2b99a55f110b2674d4bb65fd9b5b6199ac72e23eb70f63792e7d2fdaa0bf4b3e31c2ce8758f2ec770485d1e71d2dc41e25ac2456b254fde26eee6dcf840088fcee5fe4436e10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c04fbc0a30a02d0bcbab88d417b383f426ff1c84c55fc0d7073f0de3313638c9a01f7a083e503b89146d894206acfcf18a3cb88c16a5fd4cee6d80c5743532006102f902390108849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b80c569c46b856131b126382ba6e030f7b3f759b87f720a674456d6755d1f5a24b6468af925b2394a35e2e3e1ee54816800e9d592fe1f45068baf0a2f2228422ec6d7a20354f4eeb6b73bdd7e8cabb1dee44801633fae171c51fd7f40c077df116a333744a55fbb0f40b95162d3c365b4afbb957fe0e95b6cdbd17d9ff3b3e76c72b23902eff9f9f3eff1f8031299f27d86f44118fa4a7341e7549c672dd27d5870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a006750235c1714758eaa5f92ac1c46a5e6eeac6b5744934fd1cfa9d4cd3cf9d64a00ae579f278757158137146e5f4374ca9929ee9d340a54e1881ef1f213208ec1d02f90239014a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfb3c2e9eeaaec41ae904aa3bc9d0d5b49eb063b20b3187ceb6297e37656abff1cf55d08484af822b9b13848571d27d615cd7ef5037b95394921ffb1358a730ec484774ff0d8e87f19daa4e351b6e2bbfc88e6c68633249b16ef63a48f262ba5d54101d8dd11bae84ddf0839e76b76987033ee3fc08b57f2a13e7358d9b5e48edd2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a079cf53b59af1bde296fdddd433dd7d8d10ce09a85691adde7c42ee7b79b8eb1fa03ec30a1d8af3787eb69b5f878002735f0a2f6ba81e7e1ea10991f47a25db66cc02f90239015e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b445d9a8cdb60a5caa4fe1dfc012f339629f07313d4e1ef95511689da854b7d7fd28313a6cdada003c686f06769c868b2cdb91f87f1b82830e08688c06b5331b9b0505508a5c122df8bf221be2783edbb4ebdc48e50673ab0458e7daeecd3b68f93a5a2d61e1cc7af7e696d76a991d10d12d6b72995581c4a123acad70f715acfee087bfa77dd89688e6401f01d9e5ccd1bb547078d1439c8f63831b6d037c2ac7195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a033b39680231187756758bfce5d51b30455c0ada11c099351001f2dae10a8fd5ca06d7505099177ede1c824bb28ce841963a1765f7cf2ef7c7ffb2da45682372d0602f901f9016e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000093e072547a5b4aba5cf10024062301bf2d85f5af06a86209355e7571168dc6f2f0408a04220411b5661403391c91d92d9cc01e9ff51a0a0590936f69bf61b09b2d6116199a876e0f6d79d285e590c7d49af25080d3baab95ec1be3822804a2304145d0284bbb5ff2ece72fdd4f2b20d42592616380af3ff67a5447f3efea78e537aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a049288147adc66f9bf053dad49cc659a94b3395f33424722aa27ebc8f78247faea01d92f00518c8cd8bfc8d68bafe76dc19d6ab622eeb0e273d4d248a7d7c56fc6702f90239013a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b121c5cf848e027dc4cc22baf95c86e160ee1ea9e490540d179cdf7468b8d6e334947192f9142dce43243f17b43b28dd9a392d834c0b5baa715164776cb53b2c1a5ed327e5b0d2f0c92a617b1e4a3dc03a39eb466d58aebe8780063d1f3681cc4610a1669643bd11695c4fca06549f7317186c0d289ae01671ba762c9fe5a2b179ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03b44ed94d2cc0f76919d88a47ff45b09da7dbd9459c613e73ca67b5266ab2679a0422de4b36bd07e286a830bd994648df9ebf83225307648d7127465ca86fa182b02f9023a0181a8849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdf96c03502ac2021b76c4fac9c82d85c0d6cca4aa2fabfdc51c807e4216cd51663c72e95718f1f25037a78765bcc4ff89971f8088664e1c42337f305f36ebdafb74ffd93a9b87839b9f21bba96a3420c2c0b969d223e76c6945b874ed152f4f7001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a017da238e7e078dea7ddbdc976d270f817a00a3f8418a7a315f533f1d9f12b46da040de95b0622ddb1b53d8dac977a5a3b9676a73bb7bf4dd09e852c5ee96a2d2af02f9023b01820127849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b07ed1d2191bb7a3ed64e9a7bf1d97c797e8831671f088561a8b9df63639933bf0ab5ce7f3fb0eedc0e8a8b19ba15a4a4a473bf444c0152bdac13f8d607c3ae23d9f8497304a240064cbc015bd4e60ef746c9d8c811123971b71fad55fa7ac59a22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0958f185c93c78720e376d511ecf23ad677bb69f8af47acc5af1a4e6ff4817fe5a057e677ea9a0ead3bb99716545976c4a5805b179b2571b1199512c7269a4fe19502f90239012d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b182adc6a199c54c9ae1953e1d7f94b71f14e4a6cca6f8d2e2724024427b440bec479557d300f98e5daf459e6edacc62c9b85fbd9393c6bc8fbdfedb4f346f3b46aa8cb13e381a1d357d13fb1ec724f0deeb2e1d2f919d681564370c76af3a8b5372755e99db10d981dc9ae18b6f26f5dc24451a8e9565c4ae7cdb4570a55ac4506ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07eeb31bedfeef057b45995886bcb8ec80a68e0ce9a195bc856719c7d4061683aa023d7a0cd41e78ac6fd1dc9075e518766681624305125fc61b601bd7ce35bc4aa02f8710181f5849502f9008504dc3b2a048307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0f5d783d2977e1a821ba8adff950a422a55c98999caa6600acc83631643df57fba003c29d02b81d86e1ac994402a27bcd7fa076345eb247a04848a151755846632402f90239011d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b903c2f2eb04f87377c2ed1f36718548dcd779ae9eb8433560b246852ca4561625f5b251b1df35be913df44f06cfecf7323958074f1eb17f7905fcd80abc1f63054ba1434b8454e7240ae22bd2eb2f94ad43111ccd1e4a927be2c401b015e4c714e0056a69af46278ad2d07d86497fc282f38fddd53b343af77f221e2bb6dc660d82b8b3ec70cf0d4f465a96e1bc01553d96a727f5e0b70713858f708c2be46a39ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0b36b32b2bb9d50b8f0c6909bce13c2432443a2da1eb82549ebd5b8bb9a8075dba003643bd8f21235959e80fcd5abff1748b7eda7caedb89b1ea3fc99f347ebee2702f9023b01820297849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2f338c5d28e1561b5bfb18a55148735cc872d0659dbae842279876a05cccc647e6529ea5b0f07bb7369308d36d1525498b2c2bf2d0564ddce4c4080591389f5654d46cc8b368dcc4f62d1f9bc2f3d0e03e99c1f46974016e4495000b7b1d7d4a1c57f0d9a8a8c22575d9fabf4d02c345b6bd68689b09c0197c9be4aa8f1a239a10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a050bf305663e7d2add233ceaadc88a5b8d435ac52181a1605dfe77d36065f64c4a022afb2213deb9e8cf5e610529da6fed4a7816f494cf6fa22fb04aab406d6c02b02f902790119849502f9008505584dc0fc830661bf94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8778cad1e25d0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bbfe0abbb6503ab9e7400b0e1d9de0cbc33573d8a75ed072cf8ef9e0fa457f6782e0ee19cdfd5d4aa2c43ae69617c5140d67c8a436e386a772665b3c8c645b8f9d6f3feccd53c36fdbad0f38877a3259633fcc7285f953ac34435d1891ad0ec0b7e8d1df7f43df2f18a71a9423fc8aae1d97ed63074e05600d58035407c78f776b783ed18591168ee2066e2263ed0aa999d8866ae3bb471d016b1dc974ea79021026c00d73f71e6c9fc7f99bef90d8e88819f37570ab36cc1b459abb88b7eabdd0e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0149bc403ea4d7f45a9fcbdec9de8af93729a51ae6916674e0e1b1cd67dc2b79ea076573c5932f1fc7c38a87397e37d1aea8521a8a92114c01707c3fb2079302dd802f9023a0181a5849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bbc449c7f482ef82b60c6199326bc233264f7f61dc3ddfe7551644443cc120f06d69c380e8d324476f552f9186aa830fdd9b68115969aaf77ae986bc1788bed470fcaf63cb0ebb1f9309c24c6272b532256e7aab111beadecfc1be208875540b483457c9fdd59bf72e5a8498937baa8ddf6b5ee96f52a4bf5501a41bf841b2bf18dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06a55fffd626565d28c2b4d87b6e4fc20d67a18503c3eadb024688ff67d9c0f77a043e28d618ba114eeb3d17cb74818329d7c685513b66ad8cfc9e72c95d9c8342d02f9023b01820156849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b349a4cb6c7b7d13a09cb085ad411debc49e232955ce48341b5bf53880d7b284ee4369aedef96cb9e4bcd9ce8c25fa6ac0defdef4768bc27f10219326463f0bf208efedfce135b509d1544040fbd8ad348cfa31a309529c40ad4a63a36d89b5e0de660bbf169d37cf7a3bdd83d271cd20b2c421392a7637935935b099529f9bd532c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0ccba7d31b17978f14c2db12715df3f8683887e7bea899ad91a27bf340c63aa11a03d1160421ef0ea7fcb04a792fd37855ce9ba54f0304e6b73fa8999bfd5ad85d002f90239010e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b906d2171853279c054680adb0b51f6eb7acbc322b770468f9893d89258e8d95ba817ae6b33c2ebff43503a6454463819e1cb790458fe2e2e1a3dc279b9c0a8ad763586ceb8a84db50636ac9e3378d9878a11b8cff4cecb6b9f77db2ca06065ec1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a045bbd761da9478a5d76c6b39c22a17b9eae74c4d1570b3ebe2bc2ebb8164c4d4a06d58bbe87a425167aef39bcb91e2082ea8566bb172a198da777fd126712e0d1702f9023b01820106849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba6c70f43acc6c77c6d1c8c345547474284cd18961c4a95598ffa397576a4ea527610130a406b6a70b336fe19c1a4ce2cd310b55fe5ff19a78fbe1d2b704307cf3cbb7597f785b6f0c91497ef907416efcaf5b490aa7f12240f77717abadbd7207f8689d4bc597cc9887d741dc8e640862294a68415d5a2641dbf00759a40bb1611d6828e7a5c6f653304a5dee69fdd27a099b0c728730fada01b02c727025310eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a08fa45af8d2f0e9dddeabfe8d81ffced0380cbe15cdd3e7ba8ddd59927d95b3f7a03883786120c155db5094be77e541b2fc8f0da6085bb3450b31adb0646c4d473202f9027a014e849502f9008505584dc0fc830d2c5194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8801e32b4789740000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b02a6cb215e33e1ace2bf5fefb357cafec198261c800d0de79b03f3a9016fe0f71e8167db33748d73426a91f80336d1543be592d7ce5686ed10aea58c47e6ae7850f2a721c2fbd607e79faeca33c529e6b4f03a4afb8c9b03c5a94cd5e80bd0d6fc29ff3bc9ae3fba105e1a9d95f944928acadd6f9e512c4257e5a5107540b0104fb71290dcb90e62e0ff51648a36d91bab3e797e7b2309c7138af733769be539026c00d73f71e6c9fc7f99bef90d8e88819f37570ab36cc1b459abb88b7eabdd0e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0f0974eb37bea7c578f65e0ace146885edb83a78f7f5ae95e72a8194085a84ba0a06ebb98f53dd851411042fbaa7e3890c408eb02646f875b8e344a088f182028c202f9023b0182028f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b192be21af03104f15f698f408b92e792e97ac423bbc02e155eabb9e57f7ef5e777e86856ddec6369e6ac57dd3c7f9a3036a68642a2806f383ce9e773e79bdfe72effb8e3ad39dd45b385949aaf317896b146f8b2611470623acf370ef5634258ff0586c654c72f961025bfaa62fef509077af2d646ccb51f70f8d002a6f80bc74f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a082d10bf9ad048e149f86b40d651716dc575c6e432dd33d65b0827288ade32b12a02008c069232d0f367e5d4f3fa64c5191029cc0a169107fef70331b552225283902f9027a0137849502f9008504dc3b2a048309c71194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88012dfb0cb5e88000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b77da39b06700604f523119bd39f568578f77ccc72088e81bc722cae56ce8cd74c5f21cd8516cae6f90935772532a1a0e8ff6e33be48caafd42d1099c75d4a1cc01f61c56d5e9b2b79da5bf140fc55961d3461d111d360b7cecc4ccd0f9e3049f483339e45ab04599c7014877befcb5ee8e104dbed25ade1f8f3fb5d4f30d8845a2a5aad360a307d5930a4ee4c6439586eb0878524380d9f92982536e1531b5059a79ca6f5b4a75edcc3eb4f5e0cd734ae0b06dca6f0e4b95ee9076cb4028b634807945d7130a37d08e2f6c812321d3c7b9b9196c153b32a4653efd3e98b99a8cc49b7ac174619d63a74f86cc044e6d9556ec1756f43a328339e0259ca88389d559fdebc1c39ad3128408e4db0d31128419114442f0a4b7310299e7265e628d02580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a084802fa9028a9ffda1c04ef8ea5785c9a555f5e98ed9e066595dffeac84e2f11a04c1d0aeb6ff3363cea419045fd34954e5ec9a3333f9dc7bccf61c76ccf99d6b302f9023b01820120849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3bc11602583ea1e8bce07d80cef2263c106604925949cfff4d34905370b679bcc0ee7e9ca63710a4e4f7c23dd3a253bdb7a947f63f3dca5c2bcfe2e92c76a2ef84ab0613cb4f41e87211826ec6c92e1b737a990b879c6647c1035cb76ea886cbdd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bc321e25f8cb3642f452c856e381d2c812e52e8eaafa363ab076205c254a3467a015d3a1e7d44b818fe33fc73c2c683ff3ffd3fc24dbdc77863da5a304973832bf02f9021b01820242849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ac59f4f2995f6d588b90f13e540db16b42e3b076cd9adf48fdb8db2032b3cd072d09efe4697ab684e6f23c9b25256c888b6361ae132a870919c84b8f8159fd37658455ca6cc651f761854d33956ca947cfd79685afac2be6ae32a4ff488575c8dda2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a075138cfc203596c94dd977ed1908c4f3212850541c8e9a2aae75424705a16e50a062cc6a08137356a9b2fa5e395121ef0311992d3b00e02185b9f5728003806a9702f902390108849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1e0effbeaaf8ba98a40ac381d452166279b828ff7b90308ac4fa2ad457997ab82f505b7ddedbf41636e46b5d284b4c2d74e8144df42f051e57ecdd4d7f76c5fa43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a060184085bdaa3a53f80bfb450e4db8440febe9e4db096d09364506a2e0ac332ea01f0340a8e64668e837b9773ce1fc587aa9e3eb51108575c63d07cd7797c4851602f902190151849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a8f95379893e1e544874c9af7352ab8d23a4a613d1328f0952f87aa00685e08385995dc38d81db6576107b1165a2c9ec54e45da5b959ffcfa0345c288bb826605e8e63c8a5b994d2a2f50bace168e2305472e12c8d87fbac40a913f00a235b4825d88d7fd2b74ccea50449ad3d5dd2baa127ad9c2a856eb50e33387d689fc2d4978f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0404336da3e63daba9642c41a2d26d955067746a9778520da4487359aa3b799e4a05a57c7292c534b7b8a222bc7052fd96a686ea79ca419b792c6a412aa853bfe0602f9021a018197849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ab21226e3c37482fe1f91559edff3baae40232e8bc83e135fbcbd176b3f009711139dea2b6989b59d211ba65a8211521e49cc87c2eaffa6910bc5e904291c43050ec2ecaa5b4decfc7e9a38ebec4a393a8f65201cec3eae362fba0443cc6ef3b892c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a03bc093607adf861fedf9b1aca5a5fc7e9861d417fe4d78f59b949c3fb8d0db26a01d67d8ffd86d8815cab990f5815ed8a602e7f95ce434686b0ac98d989cc7bd6302f9023a0181f0849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd2b7fb55765a501a4710680a4795eb8a01c24982b604bdab082ff5c02ea70897b7f73103a1adbb8f5bab0cc68cba212dd9813caf38481af11cb574b92a9ebe0898ace2a74d0456126d1ad502c2de95af6b8eab564e6559fe8e9f3d1de106d6297cfd35718e2c586ff9a3fee7bead78c979e84815e678e9f0833f8782898c03fc228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0150a03b0516b4d0ad0dec2741983111bb5fd62844695a486317e992f3af29754a06f849d344f59948770db4eada4792f4bad0446033d2a0426d88a0b1c0f10af1002f9027a010c849502f9008504dc3b2a04830c1b1e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8801a6c5de98458000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bdd093885259c841906b374ab78dc35c8df0f79421494be35cb4f8bcc7166f4c03eccf109238d61e8c7a56af992a4fec84a8cad548e0cb781e6725635d6ae72c46515dbb867f6bd1be0f59b01c41c07885ea470503a55947c6fd33acd464df0f7efcd1056603d54d8d6c2c5b6aa2cdabb33a647aa45f6124f591e9229c6bcf6fcf259d00079dcafd62312e89d4a187eef89e7a1524f6dd0a0f56cc4389285cec3f97f469d19b96fe2d0a5a376f0c301d6ad73e09f0cb231b8e651a000542f655a99b39153d3a57af32bc15af4a9877513615fd178d4fd13c7f10b37e9e7f19cad2fe2469d715f1ebb609042d032d33b50954dacf341820702a87e360fb2f411c3b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a0b6829e905230aca49215aa176ff1b92cc6d7ba84f1800fa829ed26cc3b81e905a034e9ab04fc705c9d1526e50db43c25f21fcee00bdb44c1c76e39952ffa9e3aad02f90239012e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9d9738ac6120e944eac178a41fab5b252b344476c6fcca672ec855d87f1f42395ada051bd4e2d99dc71b21c0a2665805d75e2ad9204c59542b65ab8a1ca71aa0a131e56abc67a32704e81a98b22d65a6276d2f9a8a03e325a0023c567bdd37cfc4c24f71a01124f80059778e0bd53eca71672f38ad5fb96a5b7c204d7497eff44f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a071f8a808f043b3656740549cdab840623112a13661dedeadca10bd4eb8b8491ca015a2ab03256714732ed844a83febc459a5a2311cabb8488fc606bbddc25c98e202f902390110849502f9008505584dc0fc830536d494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b901c4666c00aa00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009ed7bc36201af9831e4109b2e6ce7e1493ce77aff577696c33d8ffff15f9dcf8842028f4240045105605fbb13aa15f5f947efcde8bdea0344e203e3398428b88e12db2312bad4e1522b05ee87376c7d0423514c01d596d9fc711bbda3820948b86095f09fac1750a1299afd7756276b3c80164724261e191a286646bb11e788c487ed5aea3957d1025ab4bc6e0ad39d08c682797bd722f06c23d4bb7b7c572243ae1a9cca5c30e523b9d83f240dd6a0998bdda129161fd1ad97116058c11333295ee729d1fbc588c4c7c999c4766ad87c8480fe07dc39896712ab7d96a8917c1ff5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0c4a3012666544725c75a2f7448c808c786c488d7ec9ee571422dbf08eab37253a0503cb918fb568a42ddf25f07566d7d82f1aa45c587e16752d92819149152324c02f9023b01820191849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb934d3848746045f8eb77f7f2fa5a85a26fe5ee3b85c3f390dd6020bf9d880d2a9eeaf286a1b3c42854a642ed1b42d38f6d5c47d5e3ca5d9d1a83eef4edc5d01562f0398d9622d9871ca546c9bc04fd3e0284fbf1d3e94e23b25d33908a3763b22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0fe4d1ac3270a64e8209aed0225c974b3f43cd355f5450b347e9ce74ff0d1c80fa04af09b96678fa3bde5ea22eff7976847b07d35b16ec7a9742c827ef03901328002f902390181c7849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5319209db727a8495daf464b1b815b6fc4123d4bc203777eb7f69000eca2ff6ce9b9dec06f69dfbd8e4d0fb4f2de4337ac0959520b4fc922594291cc6bd4d8f85488786bf24a5c5d65828f0e06053bbc0996b736deb973aeeb23128bb88a104cf2ec770485d1e71d2dc41e25ac2456b254fde26eee6dcf840088fcee5fe4436e10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0809fc9dbc9ebb3452f1532532188a80b0da1466fce6e55faef3fc7fc3e6859648ca0393acc8e46da3886c3d8ab6e3d93d98e107ab4ec8bf26b5c43c9f3ad0ed3bcd702f902390140849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf68b9be164945a666fe9793d30608f8ee3b7682d0f682e315e79bb9bd3df1713b6fa8af49a6e6a212f713126b5d571d8bb1329725f4ad32b9cfe44c591c68edfa4ec0a46ff472ddbb9141ac68bf1c628d9e46b79e1c4d6127710ab0b4aae94f2ed0b910363c1cb92eb8bef7ab5a06b234ad901e11395512d06a6f436276a2fbbd52ddb6ab5cb993ec2fa6565b6acb4a3b2be53c89889879b842a760e955428b1713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0cda9c23e9d7f3de188c87c56244fb9c6a6eff4fd080eeca282136b978aff0e22a0232b40efe9022f87e91c1ebbbcdf55ab154f2d34370c3ff488efe7292290a2b002f901fa0181e7849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009351c5292de890b0facc5fa47f9938926f413801f89aa99b6f5f59a74efe64a0b59706ce824bdc1e4eac690978c3d7d3e1c3e634f0619768fbc5c74c3fb9ef9efae950b037ec9cc2893a196a0c810ad707bd7c9c8e864d9c2106f2df0fd83998299f9964d85040a17ce86723df848a5d64c69a5125c129da9f5b6a2660d8ffb24c2ddb7742c518e54f59cb8da916bfb3a1dc82106a1494f7342262c6011ef8bc7b4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a07a0cd0ee4cbb596d86e0afab290833e5a2fba1cb87602ee19403b1dfe5e1571ea04f7be63df987dbd8ff75ab5904428546b1f435e5d74d3bad73f0fca8c5aec26e02f9023b01820189849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfbf0ad04c6fccb6a29b0738584ed3e6ea1663a7bbe8aa00c508a63f8f279d49a727b3eada6738b17c9859fb57e105bda160625bd5cc7b2cb16f9190fd90a0d61b8c2d912ca68c1667a783dea6a8b6f663a83e7de3a5141c90624c3d78bb674c23c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07ac8fba7fa155cede49fd2363e1079770cd98f140376c293bcdec38a2409eeeda034aeed13a0268a6772d056d7f2b66ffea08a4d1aea9478d39090f0ee465a22cd02f902390122849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bccb917dab0143e188980116c7a05385e7ccf1eff9950d1b6776155473e896d8010627d473a34792965a02c9e7c4c5712bd1d0a44045ded264f8bfe09d661ed6bb68fa861bb27e3c3399c8619ee1a6f852d98931285684283e2aeefe7797b2eaf0e3f9ff8fe75329deb87f104175beb3ed4b66bc012c401d52bb97b16679f9872b5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a01c4900962deec1aec84926817e8f8493ab6164de562bfb576584b538e66c3a31a0604dc7da2bb010db10bd1175889c413aa02774c3c0cf463993f92699d94c9cdb02f902390156849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfc90e0f154815f8a29b179473b6d316b83162c600e0bcf697c8ae0b007705a204be1af990f7da72d6d4c11d2120eaae40397087c5b38e9dadedd8eb81c2727b69012c5df556034a8971588cb55eed2a1ee7a2f7e37e6692714f6d1e69b393893666dce4fcf2dce3d119683aadeb1ea17923ba5b074391c1491f124cadfe4b30ca443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0948fd52b3bb4082ed696bb68b36743496939723fdfca99da14fa78a37eb5c1c3a02f2dc0198ccaff741861c4ed494de5137f37f1c0dccf80c9dc0086bfb971014a02f902190118849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a8f8c55c60f1465e17cf0dac288a4ddee932c230befba393a6674d981c7fd809f920f8327edcf720fcd5044e0d802f6d5b0195deb3c23fe4c56eb007c601c074a61feec1dfa208108f700f4ceea1a55701ad87f2f8acb3a2d3d79143df7b1539bff5788af8ab01098f2cc2e8b1892fa4d883cfb0933cdaf370293de3706cda345ba63c0fdcdf7e22d3e03dd751a495249339c2dababf333a1bc91f55cf6fe5c84f2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0a5982f188c00f6fe238ca124447787cec83059eb5dc457d67034b85a0680cefca05306e8cef3b1e361b586c12d5a5d9b7b0d437f47a1c16419c4f9f99e1c37429402f901fb01820150849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009d81502470ff9c963887cb3ccea7b5acfad742c83e857c7e311063e7da391d9bebdab5e17a0b1bf73cdd6810a02572433be3297e1cca118d50b0578edcf8750864d074d7c288e87c7c83ac94218e37c893dfb593f959781d38ab7da5c144a1b24379c68415c9beac8697de0b6e09ecdeb979ed4dd950db7cea20f0ec251cc3c7fed220f04e94ab022c296ae9584d24eb79a4ba3b814090b8de476fac2b8526ce49e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a051ddf4512ca6ac4eefeeb4371fc6e22ecaaae0568bf5299d46234b271f5cf6e9a01e76ee6ff7cbf9955d26ec76f3c11f13c40db49f3b8db6f7888446abdb4e643502f870011c849502f9008504dc3b2a048305201494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a027402e479c09139aa643cf629030dca513341df7f8aed926a4671a94305be9e3a01d0efe795b4f363453a17010972b1dc989af4595253f47764312ec92306ae65402f9023a0181c2849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5ea3874fe4f38f62b587b6a387ba3ac7e5a8459c1eef220a048b114fe536a3fb7ecd4f21d4d14a5495dadb3013699abc4b23cc362804c9b0768006aca4fbabd2c9987d969ed01cd8dd7208d69278752fae3eba6623cf0c331b9bdea857ade7ffc60dee45982f80139634eb48ef29ed510cef4194d126df3067e2e592b00ef4b381187fe6585a6e1ed377fa861ed2d0615b0fbe526edcdc9bed9e83a78efbf9664f3c100a34a9d04f39f150dc0c7a2479e84bc1da4d18e2bf86793f4743a11ed3990b76c3caa38cc2e3686d9b8a1e17a60d7bcb6b1cdbcbe95aacb3a51c6ee097ac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a2d046417875b58e1e8e4018f746e2da1ccaa98ce6ff56a487f0ab617efd444fa04133041d67cd4e556610d0bf0ad31ec857084fdb332d942275edca83bc0b6d8c02f9023b018201d0849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b736dbcfa20cdb2287a9808ec7657b2829ba11837922d92cc4d9cf449ad132d52257a4b7defb1f68025d64911aba996240913d51dd59424fff1a9b5ff940fccaf8668f21a2b234d57bbba47e5900dff795a5171ad8b749533061769f9c69115d47eebf675830bd5eef572fdcc127dea194ac442b769290c529437c64309b792d220995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0494d8fdb50d1d6db5c0106668bd8b3c679803c8022b8b5397fbfb535d88751e2a04f72f64424dba8d610462aebef88df50f53be5f0a1ba2b53ab7e71317807abd302f90239014e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf6c4ae558ea247e2d39c65d9504d2be857558c9e65a60d85e0669d3eabfb7fb6d6a068bc71fd59a0cc303c5361a41df57cd13288543fdcef1a77afeb8efb3b8e43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a008fdd77e6a8de0efa8572e06c22b4d752bdfa1d570ceddecd2e3b04f75740402a04d4b87f2fbd7d9d82a9e6643f312bb442b021b242f4196414104c1221c3a862302f9027a0127849502f9008505584dc0fc831ad24c94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8804b7ec32d7a20000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b524e6ac95d0f43dc896b4d4f29f6ff526a499658c0cf540957ae214378a346de08f74729278eb26028e28268641bbbe48d5a9f972ce14b57ceccd9853dfaddf8e75340e2d70f4554b36e06e8005e03e95923b326b6637618c83855fecb80f93b3e765426b5d9fec869098c107879201cfcf9b46b720c5e85a5900ca1cf34a08fd2b863cd9579699eb73ffe847b0b0ee2413ad8c50cf5aeb80ba2bc8d6ac6de5824f2c26fb0812e410cbe97f2a38f9ccdf5ab072620536597f08b6359d4eb25200e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0862aa3a25af69faa7f8aaf4fca6b5649d326616ffa20063e63d5db19d7c31826a06d1354c38f2ae3ad87dd2ce1299ddd7f5b0dac27d9e1b97e2fdb71b7a9071ad302f9023a0181bd849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6450ed43c962b62f21882083dc083ea34129b53516895cc878e9abb8f4c7f995726803b18ca30fae8c6d31f025acbc2ac026907d60b7bbd183337fe4c58a2a0309671924bd7d9303eb8d90875a726aa2335f1a0f5100e828c9fbd284ee480fe39ba171c6b404809e29f17bbded432e8fa50ed36a8081333b1061d9de19be10aeb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03b614bb2ab9d417dda8626399e8383e0d2ddcaf1c1e1508d4c8bbb6f90a35659a02977592eb5d9e77e00a80e74cf0947c71489d1fe0808aec5e9f4be49bfd2c57902f902390129849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b509c479da1cfdf235cae03cb0b0d3f65eb4f0b81e9d5f9bf176e89ddfe0205fb71afccf5859da1ec66ed180067d01b1bff1b37177ca54c76134ef14358c3b2b20e7d13802b59b72ff9369a97c88269d8dce4974e7410ee6abc7b6ed84f3d711c84325a1d81ae2f3fd2bdf0229e3a0dd50c1d144af422ec4a8d45fff39dd25e503bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a411715b0310d63c2e2015955c50beddd02bb63a71bd95cb381bddcb42103eeaa03822d93e3a67994ce143e1acdffa1692610f2c497c8b5fd891d93e8f796e5a9002f902790108849502f9008505584dc0fc8307942c94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87b5303ad38b8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b3fc4ec8ed26a4da806635e13034c02e58eded96abb996b9c378bbd12dfe85885b899b30633e5a59c79eaec9be41238fd5938fedb5b26643c5a08504f3142d6511f65c1cda86ab20ac16bff32bfc16a23bd568ded29eea98811c181003a7183b1ebf64a9cc708236f9ffbb791461ca7d77ffa935b24505182f93c7e67f8713d70f6e010e4b636435cfd1e5b081a8db33357d2961259e7cca951e9cdaf9f907c98ebfce73347b9c0d0ed797e0607094760566e323866eed59825e458446db87d96807945d7130a37d08e2f6c812321d3c7b9b9196c153b32a4653efd3e98b99a8cc49b7ac174619d63a74f86cc044e6d9556ec1756f43a328339e0259ca88389d559fdebc1c39ad3128408e4db0d31128419114442f0a4b7310299e7265e628d02580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0acda7974f1255551b94a6edbb072026a139576fb988acb7f76c1ff62b4229933a02c244fc0bdc72164dfe43293d23e3908689dd3bf54af36936282a44fe6177f4302f901f9015a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009bab7ed09844354aaf2b5ecefc5b3fed83b28aabdab55b1dad2b333719b0753f4bbb4fc83a32450c0927d7845a17aee2da2b07a8d2fe5a8695e4615ddcf64202dfd536448de02a1fee53b81a5318442e9f21ed98a1618941e4ae9a5136a70d0e33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0eb134968f04e38acda7583516443b4b3ce49d5fc59461ffda78ce403c4bbfbf7a0438230355f83ca37c2bb20dd210a7c879f48b2d934110c88bb46c8683efe0f9502f902390156849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0be536cca05d0ec8beea5909b8db5534336be4b122f8ae2d7dee8ca651eb86afb6fa8af49a6e6a212f713126b5d571d8bb1329725f4ad32b9cfe44c591c68edfa4ec0a46ff472ddbb9141ac68bf1c628d9e46b79e1c4d6127710ab0b4aae94f2ed0b910363c1cb92eb8bef7ab5a06b234ad901e11395512d06a6f436276a2fbbd52ddb6ab5cb993ec2fa6565b6acb4a3b2be53c89889879b842a760e955428b1713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a026e25f11ea30f8a5c29eb876eeac9627f4a5778341a1205bc0f652850d6cec42a008abe8404931508e96ee78d5c366a2eccbfff587afa41470eb1c7dd72110bd9602f9023a018188849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b59761a3fc7b062d7e4d0bb51ce3851ce409009fe6f3e76f00783444bd32d9fc1b63d4d4ae6f08bc5d0c6101a7f3e2f56cadebc9ad4e5922c98389e43a1b93cc3266492525f26594a7c067520bbabf46f290b737fab684e8225ae40285821205eeb4fe1a9535342be73740c26220f0516ad12b3493db131b40a035c35e1cd14867bdd4f986da04a30804d517d664066aba62bbdb168a98dd71cd421edac215be7699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05f1de1956f80dab0d9a895ef0470bd5a39c9c72a69b8abe82fbf6514a8490ab5a070b548005ad200d8d01b845ae2fedf6a7065f7e50a5b785b8cab66212cfbe22702f902390172849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf778df556336aa96bf90cd0bcc1db5b782067c734acdbb00baefe0be0c4436dadb89038ed2e4be4ff0a7bd5b26a8d6b9442e2f0cea03340a59ab725fda6a0002887ff3b26b70081e49de2b25e88b46087ecc29920eca9d892993071629981a113c0305a9a15f0a9def183e235512e7809d095ba5b9ba9f206885ca77a34e9a139c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0edfc55aa8960aa6b3b74a27c7d75eadbb8fafce5f2ea32f99a22195dc69911a6a05bd8278b7f3de581348aceb5b80f6913dbf6076c1c3fb15b0c727592eccb202e02f9021b01820166849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000adee82f3eca686a45deb0428e255230b88713436d28f81bc58cc564de8024f7f8a4afb97385d60be26fb20508b005b79f196600e207dd8020fee2b3e4800cd9d95aa826e3c73d97b88e2619248158f4a463d2464bb5fe08f8d6b8f1f7e3e42b2e9467c640a6e37406a471a0963268dad95dd69341812624eff05606d06e436423785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a06fc35001132e137c9fdb90a709d08a3cfad8a9443c857d4c1eccae93c21a7a0da07b29f07ada192801b1d8657cea7c2a5d2cd90dd5427a206171c203f78f8335bd02f902390140849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1311c79574584689df4b57ec9745e80a6febfc9ff45e46fd69737674759e7b66cbea32e7ceec669130e2b000490e0c91a766d3f479ae3b93aedb7360b405a9178189793f50123fdf85a781a87903dc36d53afb3eeb845913b10b17a98f3db77db18d55a2a32b5da789825058e61e42ce64907345e80c9f43440992add1ca403fc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07f629eecbbc38fe541fa28c7e531f4d463d3c7bea79e50c80bc171e17c9144daa0099090aa3eaabff4a0fde909502146b9a1599dba4fcddc82c7d41fd8707582bd02f9023a010c849502f9008505584dc0fc83261b0e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b880713e24c43730000b901c4666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000098f171a2febf7c27179dcc6cf3fe755d18455bcad44bbe255826427abf25a2c15a68a6d65c9a80a9e55912568c7361a0789af1a8614b2ec305d26598939d3d0ffca00a0336a48f0e9cfb42452bd8e4883bbf35daff3eacbf183f457d435a9b440881b41ac98715932fed6bb536e9fecce2b6fd626f2eb40b528f87877c61ea4f187ed5aea3957d1025ab4bc6e0ad39d08c682797bd722f06c23d4bb7b7c572243ae1a9cca5c30e523b9d83f240dd6a0998bdda129161fd1ad97116058c11333295ee729d1fbc588c4c7c999c4766ad87c8480fe07dc39896712ab7d96a8917c1ff5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a050fb1adb94abeca0024eb9ba778f1d916403cf2b6365ed2c3c960a02e2c52e77a05588ca7c5664e33c92695919fb514471cbf408bd58384262f1ab98adf0504c8102f901f90101849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000923f490eb23ddd66f6862187a400e492e7bba2ff805244aefd7b8e3e56784c34125af9e96b06640036ddd78c1e6d0ec30f3a763623ac343ea983b20871627af317ae4e6b3a1bb53f784c63e3a58c743e1f18732bedfe56436c1e38885759ba26642bdba744a1341265247401d61b2042a3bc73c956865e4d79d5dc88ad3d4bc40d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a049472a60cc620cd7957b1a7e94985d16bec210815e6c94d9b7cd944b71e6bfcfa04a925123d4b79586b61cc5bbd1a8c520224f8217c5992fd6145da251e603185602f8700104849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a0d08259f90ed8b8699e39371303d62780104b2ab36186619d8c99b04e1c841b44a0694e444813402c3b1e23f1b9e3c9740741436c774e5f635a30a521339902b3bd02f902390118849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc52ade6b9ebf3f6ad99e8d215306e1c1f532e0322e4eb0cd5538305c024641dd4482189726d71797dc557529bc10b64e528d3ec056810223c968ba2e13c982e8afd03d070cef8f63156e3eac534f80d289a839519b83dee0cff57b1de6cfc17eb8585a5c614171d8d03e5e60e70694ef9790951848c59c2a758c9853c82996c60f157a3d5a8bafe568e0c270de02c72665df09162a5e9547ccac29b07e651a10cba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a00f1c773eeafdfa5972430c97f2e87e83f34cf99ce7b8c731467c15911593b2dfa020e575db1ca446556ca5d043aabab6e1ce2b9d20213fa4feabc1c8886a3ec6ee02f8700101849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a0e333f05c7bf6e3b07395d349f3c715b2323f6c14b1efb04d24c665ea10cc7cfca02413561e3cba534f48194c8fa21f96ac0c7698f1ec5277c3539b5b90ca2a7ee502f901f9014c849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000095967323982be49005b549d1db469f9b7f7f119a804ab53e6b8cfa32484ad604cea070676e81dbecfae1b4b1b57206e52e05df07fe86ad9c0e15cf2d21b4810c1b8c4aad4c362f530de98c8a9526ab71fed8ae6275787d36194afc71c9b119b2898866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a02238008da3f678e80737a79f64868be874c25bc8c3727c158ec443901f58573ba002b22c22b3f57e84b5cde2afc320166749b0006fdd2d3f55fd06252a17afa1d202f902390151849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4ed34f87037caff8506338cb74a5f49c70e74a51639a928ac147877ca27f3e64d4c5c0a26c55742d2f032abddbc0279611b8e7ccf187f092394bb11119105873be206a9ea50adff84152710d16ee2d0d89c690b6fbe4ce3638addf8988bfc8bf778cf8aa1828d5886bc232489c6bccb860d46a5104d76fefc2d676960131e50fb1e942ea83388a599e38673067c354f8610912cea7ce976c11d48ca902a8212cde5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0f1fb52f9fba5c236f495b00a4b1c2b9ef8445cb4e7698f98a0f26befd0a6a4a9a01a036f90da4836edd3d3268e74a26d6f2e365dbb98c7524d6bda3efd056ccb3f02f9023a018186849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf248ce01cfa487aa5848e5ac064e27a9d0203e54164b21c39070cd8d82a382848340e1645a4d5e2e8fae3b55bb7779a6b8ea7e2348ea2ac567eba50d46a282e17d98660ee87c3eb44feed09be1f249cc11b94e2a31f0652f08d6b068be37e65f00f893cc4f4ed5b32f6bfad609c8f060048194d408d07223fa4b17ba45d4e6b76f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07a49e3b934dc406d33377b002f52e12e40346cf81db66e2ed7d5a4dfa9eafad9a06215be7d0fd5a4a8c55c68aad1bd29f82cd85e45e077d1231c86b38ca35082b702f90239011b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b839b9ebd68fdd6e736780b1774867958d8d4d2eac0a207cc267e729d59976c8bc28040eb79a7c307f694cfdb4661dbd401b6b9a462e3ae36c6a198309b08cd4b9012a7f8e1bd49fda7f0f6c51d886769e22a185e2eb931f7abc6957aae2c796338034969baf1d1e8c9c022fffc490fb3802d1d1ea679f5f37649c1c224097616ad65cd20966275313620654e2c8f63b64a7b93a9e40ef5c911085942e32b31b8e488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a28e65feb1183956f468144553fee27e3f0f57a3c742884e81bd4bbdab894184a01d9dded94c9e9769e9bcca78da0fbb862eae6b07d52a7e1133d86a4178bf4e8d02f9021b01820128849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a9a509b4f18edde75a26e0a8d7f9094c20dc29c12676068ab89bd95b12ed9f23e524bb2fe6dab20647015103bc58f58d5df9086495531f44b9cb12f5173b59b4fcf355d0cc68998dec60b8edb06d3c0ffac9c02616aa3fb323b39643a927960b7e8e6a9ec934b7159150528e2eaf915105561956da23ade19970cebf849b88211f0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0f5a72316e5706fb06bde178c0d5712e3bef8101a6b1b5a5f239f2f854fb0311ca06f3c0d6f988422bece5d273268309780b324475398e94c50523f0d190cc7a68902f902190136849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae959ecee197642ea7d471c5ac06803dec1e3fe484506d7acf10edba51764146870d2c8c5930027dba224208ebd8187d460213302b63a1ad36bf4305744d5bfb4fe1aecf0628fe674ae6fe488996ea79cfabc606fb2ac788bf8a76ddbd479935172140766b6043d87467ef1106f42e726a9705a4f0c3448ded17ab9c2e090733523975ade81aeb4467ee3d0584113a70343f675b0adc969dca2878343fe459c854e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a092750f96c4ce786f36e871b18d0fa06c6e025ecda9af809da6e9c43bef9457c8a06d52576daf3a8b7c8cb74cde25dab367238f9a93cbe2c63c5552cbb3c1d1d3d502f901fb01820195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009896f2f3a7674dcaff25ce15c5a6ede8afd0346fb77359c897e97f9e162743013ef248224f56d6fb586a53cc88c48937c4c7d1c99178795ec7a2a33270d6a2708ab096e3484ee818fdc65b9622c337185264097284b3ce8fa4ded216075d017b2145d0284bbb5ff2ece72fdd4f2b20d42592616380af3ff67a5447f3efea78e537aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d8c845cd0cecddd93cad2f277903912291b62b47efaccf1ec973e1910eb35fe7a00f6dbf31efce1ab33723dc9f5896e0d027cd41843918b06a570ae095ff01941802f902390146849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8661e6c57cf13a2b0f83b6f9d7bdde779f5bb071016d5339cdf51f83000f57e29fd3d94b10a0ff4867faa4003b189a34c85d92c35e28c63ef271ed42c8f679058c96706067d9a7b04ce7142497de5963519f45cf93c9fc25fd27444aefbdf0d9dd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08a29b1df1b1f4d47f437ba897062bed50dbfb8713ac54981869e67f34830caf3a034ffdf248d1cf4c2d549dcbc12a540041a5e626b581a4119ab07faa475384f2902f90219010a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aed1526130c37fe1d9386713b7b114d4150d2a040342512ec9ccfbed80b9bd7a0849c7ae8ce68c47c684e8620b0337ca930c0701f18c3f11ed4ab61d2e2ef3ed20919477d74c1d7550eeff3a99ff35bd10fd7765d7adabf1cbaff7d82c75a9ff0931124e7b4fb045211ec89ee9447aeccbfd85801214fc4467ff39d2fe586259cc228998f83c3b0943263f8ae8c204a222eadf53e2e3e2cedbce275343bca06ada448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09e8984485d8904be29cecf30966a2c7872937a76588afd5ea460680b49dae733a07250bff4edc0f516246ecdbcee0814002844a20cc47df7bca9286cca6974a1d302f90239017b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4bc96c18e934d3b37b5cf20a2aa0f5cd624b76d48f3fcc1775b749ee4cf89f8861f64cd100cc7daae1b2de215970a40cdfa7ac34cf7ceff6220d1b34530daa8ba28b26e71464a3fbf0ca71a9d56c70e2ca6e230c5262e48154ba316f9449de8700b3cb6f3a3085d5ebdd919fb066b157039c7007696fbd595624218ab6b8559fe0b04471e38d438279becf0fc1aab239877a95f1629f992c2dc289eac8dc4760a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0b41a2768fb045f150c391d42de3dbbebe78806caf1fbda684d4c35417f25c32ba03c93fb91a8851f17397497c45eecb2c5afa8b4623378dc53206f696ff68a1c1c02f9023b01820154849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b05e5958385315e92e380504f4917331ac6728b96ecb59bccfeaea853fdedbeb009dc977e1819e9ad7b51a017ec0920a9e2762990705d31ffa0f1a534358ff00ae89ae0bcdcf8e426103f8b533c61f518bab94c603cf5405f48fbbe733cb7c3e3ffda629977354c31eec661b208d7ae2dfe36a7eed146ab62f714fa519ac2fa9f20995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a072ee954f1fbd5c9eec75d5439e9e26b244a5c2d1e6602f0437bab551383dec24a021784554b0572865a93b1ce36ce7f0036e6e84e5196134fb06ff9794a85865ea02f9023a018195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b188382a0f8b8a26665ee117e2068f7a4b8e4db005232fa66debfdbedea2e91f3013bb8eb3e5a9968f8ac6119e72e8241b900a9b19f621ddc2a185b85cecf462d7081e2de01d1009b4f9f059e4962e25a24345d826781ff49fb66bb37c92408a5cc27ab0f6a33b96dafacd306bd846cedb44ed82f83c88e936c0e0b57c9ac6e4676ae7090546b9b900712031e17f61e88b2e890601fca5cf23e4f2cca9a8bff62a4a8f898ead64765bb8edb3ec5b20f1b11b97dda9335cffd26f8bdcb63b46bb50a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a88da5c2f4f5fdd154dbee033eaa526ca777c2d117af3aae5c90407fa1cc839ca02322b6c900df5573e528c3fee52bfb4cb3568fb3abcf80733e7a98d5d7f5e75c02f902390168849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0d08828da3b451ff48506bec0aa56083b7ae8d434df628582028e91b73e7f34a5b85bd0a8dc95e34b5a4d2dc272933cfa8a678202754716b9eca267e9ebb19604c8d914b9a598c3dc8e3319ed0cd63cb12dd82ec33e72d493a5b12ac4e9f18817eebf675830bd5eef572fdcc127dea194ac442b769290c529437c64309b792d220995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0eb7e3f0ebf5d62518954a69228f3037a798923642e87b11bd53a4da98f691e3ba052b8cd41feecc347f2c20889faf4b5cc897e92233c1dc5e891335d33d0d917dd02f9021a018195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ad207893211540d533608d502859464056f84adba1d44014fd11b4b6e649a40c4f642adfdfbcaac1ff4cc2cf39c7764cbba46f08a95dfab60e494cccdb1f63fdc8951400eaf551dda3ba916dccba7742f8634a39335b7db03a5c8988508c33c6ca4b09b3f6f27ceb5ccd8b90b73ce2ef6199907132ee96c2e518ff9a3f14ff0e4e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a023661fdfe8d72ef21339e31eefc462086922e37af9384267d45162cc45642985a0427ef02a363a2585e59a42cf9069bf0b26b5c07719245d615a99e76a3b93bbf402f9023a01819f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1edd981d61540d1900849710dce55ef7ad964107f1ea19cea3fa844d99270044a79e5653eefc8300c47758bdc1a74f1a8b1fbbf93b282ec0c8ed62331e6b91f46f1b1c964c50f29a2310a3864059850ae92f1344be7b4f6d7c62e882a29d822e6d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0df163ad87d1b58587e5944a3f2733e7210b6c791d5d17467df92a4f1c1c5d3f0a06d801bbae254dc33fa4eeca7cfbeefa31ee436f6826d194abcaacc7313adb51c02f9021b018205bb849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a518bb2d6072ff208e712c84d1c296739e7f794118db976a9e1d425b63419c6c165d46e8fe50622b8da5171e53087706f2dae4bebc9d268fb3538527c9669e3eb90247a5d13af88db5834bcc5393da74a52b72162ba8e1d66fbf5bd86b97b4836da2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a06d7a4c596869ae9ce3a4cd8de61b2228626b9156c53049f3123c5b3261516c01a07ca600df6570d17cf87cb90ab6a97e03e3af94653b73db92857e5f03aff0226302f9021a0181c4849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a4dd43a382bd01e7698278e33a3c6d2c3d41b4cf41c2084725f510b58b3f7b937b0bf5d1eca343426b7e040243d921e7a1e825c6a683cb7898bfc0222aadc8356cfc1efdcdd0a0c19a30dd4a7d006be80f6d35fa5366c85c786359fb59355b014d0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a02d2f2a1cbd1156d1a312410e423d96e472f62cfaf7820c5bcb2a6e50e848c2cba01998d1a97ca259e91c4ccad70289427a6c9b44ab657fd6259d45b801918155d402f9023b01820297849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6047f226e7be513c4cd5a36d9dd1f2d9616734f386bbd4d11528d62dc058268c2de506fbf7cfcf4061218f14d6de2fccc409aecdf4a627d96adac11060187ecd9e1869e7f0bb66f8dd85cf4cc76296db012afa883787b984d97a5a7b96c63669b5c0d57981397e009f796ac78aa78f15703ccf1873c532fe560eadc8ddeda6de886dbe84053c9654ee909e5116cd040a38429581726d6d2334965bad30c3a657de5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0cd6785a6c3493515b0cce9979deb195ba332289d40e7569d6af7f7581af3b52ea04ced26a87e5b56c9d0f53bea69303c4030b02ca28cb2f71c7edabb1a58c5316102f902390161849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6aeb584d45a4f012d704a7caee8e613ebecb8a097fc9a49af8a2bf5f4e5b5d961f55e799e95ac031a40a304009e31de78a36d8cf452508634abe7588c369c118cb382107536f84e832ca9e4ff206d001d0b2b1ed702bd7f4c29f0aab421b771f8ba0acf0e93da5d52b1b6f30b27ac7664995047d613e83565c05305f2cdce8007bdd4f986da04a30804d517d664066aba62bbdb168a98dd71cd421edac215be7699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c7dd85766e71faf1aba9438dccc3da35d039193b0fff6a514f9dc8e13ac4ca36a040ffd2637724b944c7a1dd9f478f0ec5ce527fa68ce8336d7370b78b0bc606e702f902390127849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bcd1ee71aabef82c553d2ac785ca7de18f10dbab36e30ac5ee98f344d2754e4d115c0667cf0b5ad79923cda38a2ba9dcda84b34eff778bb3d389149a8cba5e1981d6521e32daf5ae7924960a4ffd182371c3d38f508eb32a58613e3c7fbfee374c8bdb39ad6528fdd7ad571f514664b9f2dab9990abed698d88ee18f9799c681232c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a018fb03af5b92221d6764c2be7528635c9603b262bb7a867a7a2bf116a53eb50fa0608ecbdee61129bccbfd0fb2afc28da771204c2d46ee1234ec70654979a515db02f90279010e849502f9008505584dc0fc830661dd94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8778cad1e25d0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bdfaa115f7a1e4cd2ef96829f5f86bae1718722e834dc65e92a33d366ae217d343b1976018f89407c59f519bf0ac219ffd8dce400eaab1410f982fcf297a26dd947daa3dc28186504ec4753e556518f0788ccd68bf4f8d5d3de3e0dc455f82f9383d8bb2f45e6a685545cf0164a5a14d7e95ae5f34e87bfb20784e8586e8fd300f16c0f0d955335c82a267dd53ae3de98131a2549b7c01b83efbfd839fcbe7bdddf33050c843ba4e57566a12338065848ca80675399ae46265650d472bd5ee3e6c10096c71c7e35f393ef615a134ee1ee5a18adc0fbd607ea21cd7e98a493beb00bd4d2fdc72bde8f269e91b18b74fc4dbcc35f4b182127e8bfc1fd7dd5678140f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a07a4063f1efaa189828c9f3ffb6b70023e557c283300c0cf5be4f3c3eb6efeeffa0790e0491e2cf968ad813e6053b2a71645d57268d319b624b7f4fbab9dd8bfd3702f902390156849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be36a12959c5046b9c240180cd56d6d636ec93be85fcd5f9e34c42ced450114cd01e90a628ec97d4193d8f11f75ed1356179d660af0b336f19c09ffea003329ff8f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c96a61cec59ff3e46d1569dd338cb3ddace483e446db6d5dbc9d367bb550471ca0025400ece2dcf0cbf03b0604d7b4846f3e7778019d8d297620cd23e279fc9c9102f9023b018201d5849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000beff1576922656b11e3cd4d5eccf7d925112698b84a2d3ae0bb208e1496112c0bc84b88390c160f9ed43ece70a743f5b27286a4a2b78ec486cb5d6c3380ff841b813af59b6419dd7b38a65e138e25281630740551ec83fe7f967bcc78dcd5b59d93900c311c2a6c6186367f2cbef3f47e86101f96cb9acbbb1f40f84db9ca84a8b06980f95496918ab0dd23927efec5665be9ddc0bf707cd004a6319845cafacf9ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a082bb4e35ebd37fc05014a8104003f63b8163a1e749825561f2533722b730227fa0320bca9df318fa3148648ae2d865c5c2bf36e491dfdca6503f677101054761fb02f902390120849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc591bdb99854bffa605089251aa11f1580606bc948a4619a0bb1d7f416c09fd6b1f365eabbb5196338309a2d30ee0e03f05f13ab1cec1f92bd43e4e870f49f5f8189793f50123fdf85a781a87903dc36d53afb3eeb845913b10b17a98f3db77db18d55a2a32b5da789825058e61e42ce64907345e80c9f43440992add1ca403fc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05a2573fcd83754fb5eeac75c701a5e3116f1c758afb4d1e0b4fbad170458c531a0185efed498ccc93ef4bd24de9f48e6d7769a515557a830f0cfe1dfdf3343f09002f901f9016d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000920bf62ff97907c25fcbdb84a450718c8e7e5c6f7c8e541cdb24b5348d2f7864c81ea3c62d00c564802083bb1fdef5fa435e276e4780d543bf0cd3f21825282d2b8c4aad4c362f530de98c8a9526ab71fed8ae6275787d36194afc71c9b119b2898866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0ea048e55174cb0d1a65210ae13f5fe3114709ebed9381dd0f86d398f9f83e04ca01c83ea62f3aaf0c9f3f7073137b48ee8351ea77cbd560780be22d0c739872b8e02f9023a0181bc849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5f0547d10854fbb95dd3d2e6fff5fbe5e73838af7016f090ff4a99cdd5ad4a7324e93441c761cf8775c4802619ceb01d51d8d635c866447cab66fa5127880a253dcbe248a07bc8251b951cd4b3b6faa63cab80808d456c6b71ff7db1a87af0433ac73431e9c2315f4a9e75c67b1d4a5214ae452ef8227b0c7cf5364e6747ac4fad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d01717709e2097a0db9dd5fc790789df9334717084aed5057b8c5f74217fe2cda037d35e90f2ab813f31cc4b43909ca88e04e308fd5403f7d6f23aa20d2b2c7d0002f90239012f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bda149a3e36e5dab90e69c65eb92eae622b6fa99f596370fedbb7dd786db9a7a562792a9ce6f3d3bec916b3659de1bc3a4ef6eda7fbac672cdb2272d7ae41edcb8aba446591ae08855364c9d460ceafdd8d340fe95f8a6ff333be53b1201272cbbe4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05b4c101bfe26c92485a646a5a98354ed5bba19e280b5b75ae938764d804392aca04e5699e95b77bb71a524626b27c4e85f7d08916050e100ba9983f27963b8875302f902190116849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ab38b88c468fa35276be986980608d830e1a4f0929d2dc01ed0a8aa544f4b9ad9d369ee813d019c4fdfed10231c8a352216c732923c1b80a7dff155cfa6e45bf17750ad06f7c3255aba180fc177d12975f243bb1211dd0ba2baf214e2a5509d4cd0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0c27f283508879af2bfa2b3223a2fc05aa162753011248dc5d1823e37b06ad894a0454a8d2bd6acedf67ece33b8bebd17593e51ad2d1fe147a6974231b26dd4cdd802f8b1011a849502f9008505584dc0fc8301620c94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844095ea7b3000000000000000000000000c8871267e07408b89aa5aecc58adca5e574557f80000000000000000000000000000000000000000000000000000000165a0bc00c001a044054675cbb65c0357136b7279b81146608b672e47f59c2e6bbae38957bcf7d1a07c1657f96629f2637ef363f9801c2bf94beaa6e8f06ab392188b0be4bd650e6c02f90239014b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b92afc7c5636e754cb271223071cb919b889df32a98cb1c88a939f2f92fc165f1fdd3bd202c862e82486dbb36d4b351ec71a058691026f1e242217e6323cb05fe0fcaf63cb0ebb1f9309c24c6272b532256e7aab111beadecfc1be208875540b483457c9fdd59bf72e5a8498937baa8ddf6b5ee96f52a4bf5501a41bf841b2bf18dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a092781076d98a5fcbaddceef505f2b8f1e9ab3f87fd657678b7e477531e732feda055609d6a1a3084698c6b541867e40a27c0d842ba39f90292e175baaaa092032d02f9023b0182010d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2a9bead16570655876cf3c319f997826ce0b82cdc68d43de21d3f7bcb9bc0d5715ad696d366a123ef5f1dd04239926fd01038f864cb3aa77f5c098c09de011b3a96382f1ee45d142fec35455c2e50aec5fd7db9ccc9b46106ca2ac37179489c037058c9696528f3eaa5609367ac44d72a2cc100eb104eee1f2ab7cbe3bbcc0517bdbeb05da7d57e84e50bf7e5dafd47934ba427f12621d440dcbaf391c39dba26164a4a24b1402a57e8a1204a10b73460677f293ee7bde90d60a0533387d3a96e1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0828955a823a88729f1aa9140562a0826ae78c6755fc7e5cfff1628e7b0fef1d1a00a2d86518baef3953a8fa11d54ebe61f740b94dc03c4157138e458f61aced54d02f90239013d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bec2c811d5daf80dfb8d8e7ddfae60369316ed6d9e539e17dbca2b9414c4a290f7a3474f1fc569aa3fb5454ec294e3bce7555ffcd6b4dcd69293a7b8fab75ddebb34fe61434f36bfb4d8c3d1d20d5ef0d908fdb51aee91e8514e07a65e0f27e391c57f0d9a8a8c22575d9fabf4d02c345b6bd68689b09c0197c9be4aa8f1a239a10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a06d6d370c586cffbb981cf2860ab71ed6d393d81fb4e3134eeeaeee54a26efc18a060e281d112a8e39b7cb7652a5f17b43d5cf298468ed760bc8d02b2b7f21e89f902f9023b01820132849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b27fdfec8b13c31e435f70fdd44a37dfba8adb384c484a4b686acd44e1e8d47e4bdc81bb1053c1554ac47d48ad474a3b2f400b7f875d2b03cd75b189093bc716fa2471078d689ac7f53bdba4a182b884d6c58284a7328073b21df8f2283b7c570d2f8e9cb25a0c039f4213639428ec514dccfd49c1ff6caca559f9af4f948e89ee04a0a4e50daa4141cbfb0658f625b72ddfbc600881b4257e454b0cdbfcd45a402dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a5d63110b57789243f7302a7ac1b3abaf905cbc876bf2d6cc00d6904af7a4d37a06ab07133bca91f898fedc1aacd4054d33c5d1d9c592a865df7dc3a3bac9d0d7f02f9023b01820164849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b146ce1b74d5e687513365cb8bc73789ed6a337d93edfa894e8e8781c7b426d86800554800128bdcdf583001c83d4b61c480484c305e27fb7fa59731ffc5c1207b8c2d912ca68c1667a783dea6a8b6f663a83e7de3a5141c90624c3d78bb674c23c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0860fd950c509638ec6fec84d4ee58f7ef339e5bed865d6d24e8a1a0c788871e5a01db4bf617925466e453cdc93c370bf28a0575a321edf1e26d885a862db2ea7da02f9023b0182015b849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0700d96cf9a04621383af3bb03403e17bed823b7700c64e4687ba0bdca9d8590a660a4e2adc5c5ae150851e30af78b7bdc2497f46d488b5f556352310824088c0e7d13802b59b72ff9369a97c88269d8dce4974e7410ee6abc7b6ed84f3d711c84325a1d81ae2f3fd2bdf0229e3a0dd50c1d144af422ec4a8d45fff39dd25e503bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a81693ec5857aabfde7fff9cd3f6e69d6f6150c54989b4d52b714ab3ecf2c02ba06cdb14b08c4ba30ca67a3ebfad20c06d7e67443066fd290046682e77d24b7bc902f902390114849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1886509080dd056af6b391145a577ae1bd4dee6d2fe96a00c312aef25c142b77f92946d9223739432576035c4c2b4a9e99d558ab24faf94ac0f12ffe74a23830813af59b6419dd7b38a65e138e25281630740551ec83fe7f967bcc78dcd5b59d93900c311c2a6c6186367f2cbef3f47e86101f96cb9acbbb1f40f84db9ca84a8b06980f95496918ab0dd23927efec5665be9ddc0bf707cd004a6319845cafacf9ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a011020bbea96a331f4f0d8b5b8e78617e48dab82fea9ff554a5da0537c6e2644ea0771e968b3669e8c13a5260c2fe06759d0c9ba6678d45542051c12c0e3ae4e70202f90239016a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfada20644b14e3288edcd7f2f4a3b7c0b95bca3d6fce1421b8c9518c66dda735f8ba877a6bfbce30c4ce611502a1ccff9f19be6a492ef7046816fc9fd0b39a182c63114896df964394ce28735228db04db1fb7d9e53b4cbca4ccb2f0f1af530ebfae2cc4a04753549155cda73390e77a0898157e5da2ae4acd9089f1539067351c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0860258b9d4abb9c1e8c76cf001b69c6be91685af87b76f8c3856f5135901c70da02a6e1208457ec2eb4fc74cef0135030913ae902f73745cebc26a0c9c608f231902f9023b0182010e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bccee4eb9a2218470e55110440a1fd07d36ad7e04812d2f63ba183ac4b36b2642b5c9fb285b5f48ede753c8bd3e039f5cb6f9bd3ef96c3d5c1ffc73f2169a1eeba29b4b3faf8626e616209d7eae7e34a343f547c39a97765395c3c0aca891d42299b0a0a6c94eddb43658e0025e02c677d57337ea13820b6f06b08b3008a6e2a0ad65cd20966275313620654e2c8f63b64a7b93a9e40ef5c911085942e32b31b8e488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06eb9dfb62d53253a002672fddf71869b82bba33db76395d212acf8a3bdeef011a076455ff2fc72a7d6a186b4e84a9eb12151a7db58480b037e8598d044e054ff8602f902190174849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a28e531cb1c1eb28e91d0ce1cb181d4ab263060332debbec80f528c932545d5fe9de0e64b74342b482e8e73cff64f3363fa8371cada91802c2fe4b235000e65c6f50ad5527e97b35406314cb872ad6f064e957b9f8312a5f07d86eb96f9e0a6a6decf5e4e1131c590645de42305afd041f1b15fbb4e5c53fca066d72efc15d863e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a06e2fd4da92dd2c50590a83e7020398d82504b156c64a087ae588b033e64e29b5a046a193d11d234ff20d1421f7d20e5de181a51237f8752ef9d0ccf917271c6f1602f8700109849502f9008505584dc0fc8307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0c86c17b0872cb1eac219028976612898fdc66a596e1c3f7388f5663af6aa234da07d00b7ad6841e3149a5b8eeaa4e00f7e35a919f94a2a33b8f2dc1df20996526302f9027c01820108849502f9008505584dc0fc830e4e3894f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88021f90b07aa28000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b6eea621a31d557f53864c5cd1c2f64f0497844f8a54c7d0c82421040f5264fb92138918e4848c0aea1d9aaca364bdc2f08a20b26555adc2fd70f795a2dfe910a6357d8b5536718d263d0ae705227a389d3a0e5db2fca320f8ea349a5b612b468645d80d34963f6c5f03cc8dd1ac1e74c9f5f2c8da158e3aedba2f8aeb4aa131e2b20ce259ab0cb0632330ecd89e8624683f7b669061b4de775a47178f576b9a19eeee8887e94b31146d1cc79ec0149374366bc57dd45786582687a85bdc4bffc46aff3c63caf1d6db3458d94251408fabe4dc4d385e5fa102e82c426963b69ec2fe2469d715f1ebb609042d032d33b50954dacf341820702a87e360fb2f411c3b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a063cf25040c2c43a549220a750c6c70b66286f1bafd95b0b7b41caeb14554f9e8a02a698cb2dadb1183f508ddf9d6fb3083269f1969b3f064bb3aa43ecb99c0127602f902390141849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8c1d3e8c1eb8bf453bf677cc88089499c627a067b0828f8145b1a1fa56d3416c886f8dc29c7254cdfe8e97e03bd7f7fffa6008bbd628b77d98b397201ae9f5a252b748b5bfe02a654f4f1f9904f6c73536a61eacd016e09cff9dc6f4dba5cb3be29ab2b0e017d31537acd9944de544d6b03768af1443851845043fe36e79e06611d6828e7a5c6f653304a5dee69fdd27a099b0c728730fada01b02c727025310eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a01170ad236e39c7e34b8a68119a35a0eca91aeeaed22b64c0081efee708cece8da06b5207f70150737b129845a553340d2f98ea2066bf3522d4f258451329e1571602f901f9015e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000980163a563f9d648e1a4ccf691620acef51be250c487ddc38a70a75b14c977a2d4746fff53fff88abee3d2159b14f641b7213978e824c33cd24e99421f98a142e2e9f6dc48afacfdd8cb7719e559a73484a1b4c7f4228aeeb62ce93c6d65b21a698866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0386d8be98ed5d98cdc1c8e4007a5d22bcbf66550e520fa309e1030b9e2b2da3da07e4101c847748438885a3d3d1233d64403c7aa5fb0c1977f491140265bedaadb02f90239011e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bef9226c68acfb69b32f87393453e9a62b37165e87df9740041729ff5d658dd07385a27eb74af451c905108c255a3fbea5ba430d1c898028c18f862a4dd2d97208c96706067d9a7b04ce7142497de5963519f45cf93c9fc25fd27444aefbdf0d9dd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03e6338014436686a4b4751668fe534a468810b6803b4a06dbf8c9fbbb6ce3e30a04d70e94009a5f7307c1099b8090d4ba69bac5f1ca517c0fbe0f4264e4abaeb1202f902190160849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a632a01f7aca4110af985d1110c5b158f8fcb7c921e3d143e92475029f609c81d18c50f0f9c5c959daa06bd028be0bb7a0bb332062dd0f9c8f4f611b2fa1d16bdad2eef155d5d80d8b962acc037e2743e5c76027144b1f707e2b4ab94e67946c00c23e9299fe55bc6d288074093fa5edec958df0a758b364a52ba1938aae54e8d8b241b25901d96ff75624149cf8483acc852d4680d915625802016f2f8600296181ef6e8b3dd65904baaf7e994510197d8c197f50381e40c345d598f9cc7344e2e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0ba702b0a92ac0a3fe80ad733bf239150b57c8135cc550a3778cb9dc2509a08c8a0315de20c244085680f3ca860b2d276b5c84b2f9e9deac67cd5212cd59f1ccf3b02f9023b0182010b849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc2b4f6a4e941b0436a01ba81bf28d112cf8386ed1ab9ab3ca964bfaf53a721feb03b9d74944f5b3dad3ebc9fda919ed203510246a6616b58397305f87d6b8215362ea5b975c3fd8e5a1c4fa997855cd1d8dbb377b9005630b0e8d8971abca64256ff198866201a39698895f89da74571687399f4d0e805cd7475289b2b151386a4f398452c98223a824d143041a0f7d210b0da1200d216838ebfe8383cb2b59c9262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a096c8ba294c3b20de69a51e020313d1aa8240af62c89933239f31248f61bee13ca008531e0347a1b559666d25aa2cd0e0ecfc848de41cf7d915bdb1cc14fd411a4e02f902390138849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8b853dea75c281dcea2cc230c6cbdecbd98824a39363bdb3ed1835c759d5bbd099031f6b04528465c381b6227794bc4e908cd10ee940bb016b7bcc1e4a3b76b21d6521e32daf5ae7924960a4ffd182371c3d38f508eb32a58613e3c7fbfee374c8bdb39ad6528fdd7ad571f514664b9f2dab9990abed698d88ee18f9799c681232c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00e18dea71ae0d94685e4dcbe5cb46ec2d3654288d9fd2f56c69594eef69e5f58a07f43e6324cc8843635e034b43a6d8bd8f7d211bc707a05d7b5bd7367cf541aee02f90239011e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b64563f20d6035f86632ae11ab42f4975d4d17db44e6e4fcbe9d9e252738b3c23338430f7b29410907b75a3c79aac55c5c28b36abbe267691ef4208971881fbb014d3ea2e1a96c637b30cd1ee39102afc6a8f2ee38e4b2cc0d01e14f44c1758507cfd35718e2c586ff9a3fee7bead78c979e84815e678e9f0833f8782898c03fc228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0fb72db308d2d3ca53ae6d2e451f48ec0b15ed1dc3a1c2c1f68604ad59ba599a4a0679d4a59cb92e99375ff3c7b3af14deea0f2dcbd725efe36b3f6f89004771bd802f902190167849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a3e11e16283f5f9fd0b8df967931363efa6321acde24be4a52a9c1ead5cca4cfa3267a88a754e7c7dff4b7f7d2c1d9a64ceee4c781888f4c5d56ed96c5d9d3755d688cbe37e98361e903ea9470e44477b88189da0f86c8f48df88f722df1699afb63095b985d501ad553dd01dac2096522e38b834a23b0d6aa7565dfd02e9aa4c16d440f5ac5df0a14514f2cf5bd0ff41a17eaf0518b6d90f3b3a564e1d82c3aca448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a032f6c3c033b7901bc58a9e39f18dac220090ed2cad9702f1218b704df007ea45a00250f1477542d44babb037b7de1816244f0b74a99ab41282385e9c94e52c16e202f902390109849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b422f0f67b1941909ea2b9e6d7f55a3e8c84ddebe05c4b2eb10e325a5f3f29140e3058cda09d4654bea424891deaa42aeb3658df3043ace4436b4424864de9193515b39bb6f3dbe4591751f072fb568ce7f686b0bf3739fab2a73a5d2258beb0f8c476bb69dcbe9a4af4cd65265b53a8a1c5df99123653e583ae510e81341fefcad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e001f2abf794fd823b6a64ab5729dd28029b6e833eada8b40a0f5fe397c7a413a06025c034c3a485302602ab9d571f8796f54c759be241c47a8fd1d48f5bc17a1b02f9023a0113849502f9008505584dc0fc830e557e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88021f90b07aa28000b901c4666c00aa000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000094faeb91a513f418161f43a1b41bb72f9706bbcd57fa4d592828c0eabcde5e349676b4ff882887c4420b3f334d279e718b62e4eecde831686ff2b85d4079fca90156269608ac8c9801c6276132dc79e7459f44ac599021990c2b51c034e02511b9a391c1b6622c3c04974261af13eaa64e458eb496069baba7e01f721f11332900db90eaf1bbb910e4ba48fd7f57af014f9c40d87a622629259ac5467f43a4998a0d041a10b45c160b9c53664871c7b10a02f343590dc45fe288099d4fca2d3678dcfbe23f194f8364b9e34635ecd5b474ed7836af67dd6cc5a39dc59202e3aacf5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0300434a93ca5c057cc54740a0e7f448e673fe7e93f936d3f42141083933c53bba07953419109feb2869d1e131f9a29251f889542724bbe657fd4cd45900d54b4f902f90239014a849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be4354598d645950bf6c63fc0373b02841d214e092ff05d592577bb4e23c4c9484fe8e5eea18c084228f6fd61334ae61f0198944c267f57a1303ff796a88d51c71dbe194217f3123519b79844a57567bef96f842a6cd8e42f05ce9524f2b2ff306ff849b380ebca34b170fa318f2b395b3c270eb9d9a44bba9dc4619411563d354d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08604a5bc03df8d223f942159f9a46c623706a6a00aaaa64f8740fc4fd4cdc31fa032468176fc3184bc843103cf8ca2f423cdeede7c8c2290d457ca1d54da284b7302f902390158849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b259e81e4e86ff30d27e4fca7f0fa26ecb3f60bb4e84ce1361e8df9a79cb76bbacf55d08484af822b9b13848571d27d615cd7ef5037b95394921ffb1358a730ec484774ff0d8e87f19daa4e351b6e2bbfc88e6c68633249b16ef63a48f262ba5d54101d8dd11bae84ddf0839e76b76987033ee3fc08b57f2a13e7358d9b5e48edd2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a003fd3dfaefc712046b00c564d74f6185c54abaeb786332466cc6bc9024839735a0407dd57c84462f70e23ba3ef69b089eb9b4627246b7342d86f8040a423d6978c02f902190170849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a3ecae468c94e6be0bacc16f7d5984f25924b9a2d0abea2cc300f7eb744c7b394106e9e3d586a4a880e27dbf6a71074131ef244df4e544d424d77d4cb2535ee35923ecbf9ead1801b891c8a634852c5ec2ab3b4e6e4b7d1cd7a1c9e4722154d039dfa13d077a86e730de6b5eeec072cc8791d5c39427b1ee4e804f1472d6439256985f69b584dbfd1dd4767d34614eb1fe52f627bd020b850ab86a00c7d95e0a8181ef6e8b3dd65904baaf7e994510197d8c197f50381e40c345d598f9cc7344e2e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0c88b0e4e2bad08ba9d88487ae4d470e66ec6039ffbb7ba6344d19699504e7561a0148638279b9510e51307faae40fdf4a5f4c7a41e26ad4a6afab4e59977dc630702f90239015f849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bcd9ff59d96ea9cb4c7b360d162b9cd49dedd2f30abb7d166fb01d732207fe8cff62e41169f954e875f18e4061ecf546b3ada32def88ecb0c50effb3cddbe98b2b9cfee1bfe1fd33ea4b6e0da93c059e23e4a85c6fbc9cece1c16184f090f4537a959c361794f5a19aa16f439e5da49cec5cdb477cbef871e7f4008c9c369841aca2fac698de5d0738c7811fd3124aebc22e52367beb65d084d958cc9cb9eba252ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0560b7e01c6a6b46ddc68b8e73db2f0c8e7b4d8957d4df6171b47fc2649ac11b9a002a997f48c3c78f65f015dccd6472110c88e7b487451ed56aaf0b75a97289bf502f9023a01818e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfac421bc3130c7fe9c8c33eab3d0f65395a12d2f5dce6043ea2964468ec33e63e8c7585e43abf49d73247799cdb2af950d77bb044a7660ee30bfe3a227ffcd8dab138c9d5b45c6ece7a9a2ffc869ca8d60dd94ea9dec8b19c668a98875b772105bcda5c06911aeb660abba38421c0ff56a426281f61fb53eb000f147f02d9a151c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0df5f22de3a9ead188267fd8ee5d1dbc947c790aaf9cc2c63d53e5ac452067a9fa00f81cea80752b64b4d9d0e7b3fb4b6f46d2d14b2b9152de9c4f5f92b1a6d2e3c02f902390133849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1af8ca38ba541fb0427eb306db622f0b04701fdd9da4ae87722b15123dde084a6c80b72f7fac6ef27baca35481bb77740c893e5ae83d6827614bcd2c1b949712f8a7476b2279bf091e119d53faad7aa724d6994f74495da46dd5825c59727fd20d56bbc4d044d270179d1803b85650d8d5fa97d9ca10a80270ce6f2db93219aad57d1c816b23d9e33e8a635ab9df8a95f1c394a9e44b4dad0095db5096d1639b2ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07716794d74eee6ba6553939624596f8cd3e39ddd3fa4f15dfdfd1eedc4c29ea7a029ec2cf3aeba1fb828c3870ce9172ec2955d7e9467a7aba64fbe91528277caf502f89201820327849502f9008505598d0c648301241394c1eb766366e3c0916eca6b6160a372c742971cd480a4755edd17000000000000000000000000ed5c00132ae1ec02a4efae1b4dd8fb84e969e347c080a06ab8edb04b3f5424c8eb9769985622178e9b3b1a5a1edbe2579136396febf4bfa03285ae1622b1369010c209c4984a0ee369509eea58d39be288dfa5c98edb5b8502f902790146849502f9008505584dc0fc8305405b94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000ba09eb53fe4a4d546b0f877bafc40acdecc5e42351a81edd95ebf6f52ce6e392c8bbc00dd4dd9cf53a31a6fd7c8393224e2e29e04a0b1b990120c4a64236eecab94ac6002d224952cd98a693f73b8dfe9c397ee3956485c32a751bd32538c05c0992b37cce9d1cfc962441ad7c330e89fd0a4b8d30d5de12b30ff16653661cdd8f47d4d2983175b9545d55cd7942df7234050884b3c91b4b1a3ea473f8a5a08dff3a4e6c30dee90ccb3d334795ce9bc9ee201691020e87c7a25e3177a40d4089bc345577c6cb0a8cd1251c96094cbc4337e4a67344fa6993838e43abc3f60586e1aff4e550b5383b62ece606f193a21eb2ea67c3d75bb0768790978af2b6773f0f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a054b89e51ca65462c1bafb2ae64b1faca06ef4640510781f1f9fd8518f97e3e24a013eaac50a8a9dbb8ef34131df297e19da4d6734313daa68023c7656b6199e26f02f902390123849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb47903ecdbfb9c2379fca96ebaf5d1924edfde83c422d90e43e5d836d79e85380f947e2920086274197649c1092b26a22c06af8b85f5e79b93f5752e77e1eb7ced833eb1d944639dac5d6576acac9527fd5e50b3be3a5f0bdffac713d622b81ca8c9ce932c51b7569e70fad2b348efbfded890dfaf8a8b43f9ef9780c40e47316f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c800a7af45c6f3811235299a770e407088f1146d89e81e7aca762f857b7fc09ea04e77c20303f3501167f173e3d577b495bb194a49169de73a4f3f330ad8583ff802f9021b01820267849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a870cb2539958325415d2d00e75ae260ccdcf25a05512fe371d96e687dd6f6fce5b9b7de407d3dadb41f5c6c3de92244961cc0f322bd71456c76d643876f6c1d2a33837566fb054d78a3870d660451d5a9c6bf3b841e52769087e1104a9587f0392c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a05896498421d289d051b7740013e122c2b0db1e4f365dca0232fef07aa3ee0c1ba06d88b20b1ac4720ad30cf935b399982c96d8921baad8da360c953d52ec7c6af102f902790115849502f9008505584dc0fc8307940894f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87b5303ad38b8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b87f28d450469ca40d68b214a8107ed9b3edd18d115298001ada5baf1ea0a296f7e951212cb74c893b0ff0091745eb8a73127077fe4de80d9c4fedd01653dba00e796087c9034e87201e8b11ba62a935b6417af09120707df2a72486c49e1aaec8e976b37a00984b38ad93aa0f8e3d5d4887415ae96a95a544acfac9077b262e3e1a5af6305d5ace328c07ff321f9b2f7788e0633950c49099f4828f06a005a984e5367de50b41d4429acb810b3d1a3aca860c1b8bffce92eb491adbccd8d96238e6a5ca93fe49390189db8a219f9cf7a18df3aa68c0f80ac67a4a6a1d2d7fe72ac29f282a4a0a93f7e72ebbefd663d620e6691c6b6b9917b89722b1a8cdc4226b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a0d4faf69b48527bdeac694d47b7107565b04aa9e74ae4363025e3c1757d96df8ba0308ae86b7d46e3796985d907afd25e4ac2162736e3c4bda7e844f56d95288f9202f9023a018199849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2828f7c9fd939b43c663236267fe6783d7bd5730ded7608d1a52acf9df083e6f8d400102777d6ca3e525d68cdd475f80393d932e84eaab89632565a1fdfa7ad48f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a068385999581b69256bd531cef665e98fd47c9298884471edca9fd711a812f9e9a067c0fd0c8315a541df6f194538eab93243b4ebdf8425e2facbd44acd794107a602f90239017d849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bbcbf6577a0ad813b1dda2ef03abe024cc5ef43157a51e3e1ec05041db63acfa8d6a068bc71fd59a0cc303c5361a41df57cd13288543fdcef1a77afeb8efb3b8e43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a028699f5393b159a057fe050280fcb59ebc13887280b78128e9bb020755d3d64ba0369139a0294796ae56c241c8d1a48655e61514c9c8cec15e4b58bb5d25978eda02f901fa01818c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000996ed02fa98825bc71a294397b5540893321cd914757817689cf750555985a03a78d4213308735bfc5cedc3dbe9ff4f8152438f79c153ec156fffa56403d9b348a6120707845473c21df36c848a6a1093c83e798b52b8d8fab8f21dade91f642d698de7bc58de4b95086202361c53dbf05d3d523768f78dac4f6ee41ad9da78dff94d209e5c9915122dedd3d314363cdd949dd6b4ed2a6eaa201ec16f081bbaad718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0e1a92a4d813816fac36a60e7f1bc4b182070049d20cccfe52fbecbab91294feaa018877cf51e75bed52b242ad79d7f234413f47eeceef8c17eb9528c11674670fb02f901f90106849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009cdd9221a6aee417e5aaf62d27c1f7334392a8e9ffd6b44404f2c5863524d706ddfe4989c3323bf53d08ac7450d979fc0a92f54dcbe3cdd51df8c6f66359bd94c0d3669e0708e9542665e4396247ba04d243c81b4479355ce2df33888c9e0b50504b5e992379c4d3ee343745728e612df3e9676a94c905a59be7b1f3beba3241d2fae1249bd417a9e9c0f5c8c8b276c9574b7637e276eaa4c8b23d4cba87debdd718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0dc3dd58a4c48357a6a13df8609b5b9bcf483e0065a7b085e3545daadf9878802a025ba78f1bd74bf057acb403721d552c4b8717ee637a42c6ba88ed2b384ef020902f8720182014f849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a035951660be9d05c721d1c7fb207885a9fb4919b89988b7c26e4046a6cbafa53aa01cacb266ad889dd48d1d96cd975212be94e78fd3e27514b5e34534e1bddf01a402f9023b0182013f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2dabbc492dd7b3ab54579785a50425fa520aabe52876de05f02e245d907717519cc9fef179ac2697fb16da35800f6e3c2d1e694adbf0ab496b1ee7ef9f41fed3d1d2e3656c8917a08f03cd7fc624737d71ef72e1a9c878f6d2b8c14120dd01db1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e141f6cfb4bdc4b6a6baa937a08db6154a0db1793bfa431b39254fd1cf7dfb46a01ad32a03bd09e0a31430773e16b19a00b3e1d65d35fe14aef7ef32ae1bfbada702f90239016c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bafb20f5c1395a42f8d3143cbeef9c3e19e40efaa68f06513d63773e3f123db231b730f2eafafd79af940ee7bcce5c87a49c3b7f84aee2602d39ab50477116731b7b14df794dcbd96f536f2b970303a27eb5ba2f35971c3e746fc8acaa750b4a4610a1669643bd11695c4fca06549f7317186c0d289ae01671ba762c9fe5a2b179ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e1d90897bdafd53bfeedee54db0a06b92249f971c5cb3e43b1339350a97d2cbea070f825b54920d4d228a70c4d66b54d7b918439aa06cf86a64bfc524caffd162402f9023a0181ad849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5ee211edd36beb0ed1627ab99989bd9654d3d854f7f9473e56c2a94e8aa5c116c21bcb4f9ecbd8391fd7a9118ce480ddaad6d67e15f7e14884072844c88fe9d609671924bd7d9303eb8d90875a726aa2335f1a0f5100e828c9fbd284ee480fe39ba171c6b404809e29f17bbded432e8fa50ed36a8081333b1061d9de19be10aeb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0f6ced6e990458ba89c88059ee542f270ebfa721595180bcc47f778a78a20def6a006022a2268cae4133cdaf8ae64bd8230701cd9e24851fec19b329e934afd685002f870012e849502f9008504e63b75708307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a019f2ec1a1471a52e79438163b026c545cb0a933823023893c5f7828b89e02546a05123043e9f4470e5635e095b9f3a23112a6e5db01f82a4141244db4d04f7c2bd02f9023a0181a8849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3fe2b1c261b23c6db8d041dce4a6054c03d31f7f372d903397f62ed35d17132c9cc9fef179ac2697fb16da35800f6e3c2d1e694adbf0ab496b1ee7ef9f41fed3d1d2e3656c8917a08f03cd7fc624737d71ef72e1a9c878f6d2b8c14120dd01db1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a084b33cd09962caca06ed38a42ee5c2231fc4e1b89647770ebac1ccdeb7189a13a07510d86e07061fe1f5813bafa0064f53cb0d489fd2421cfcd724a526b804b39c02f901f9011f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009559dad900cc3ad4d01e7f191095e1ce31b2956edf367fae9f54995c596e4a5ab8bee5cb9a81d63d0d7c34a1d93554ef5401aad078404b80cc823916ba299c3e5fd536448de02a1fee53b81a5318442e9f21ed98a1618941e4ae9a5136a70d0e33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a024bcf783994f58587c1df76ce7f6b21a83d1329735f69e26dde59802d6ea3949a068581d4abafccc2da42c05c67694be27d532b06171cbeadc13b04936c46dbc0802f9023b018201f0849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bedea750191b0cfad53b645cc98ac996d3208b576fb528db3d7f62b214850c758167bce595700e5b2c974044ca0255281e8d7a4b169b44bf5146cb6b6bd38bc89d9f8497304a240064cbc015bd4e60ef746c9d8c811123971b71fad55fa7ac59a22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03beb94d8969544fc794fd1601257a17016f743f0c454fab409aafa7ab9ce9841a06b2ab554d706bb7d96cc410cad6402d76160279013fb45086a3e02f9566fd6a102f901990133849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90124d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000006877f8605a46ebe8a5b2e643a1dc49c6621647363a64caadf4e8c4a9d2c03f097f94d209e5c9915122dedd3d314363cdd949dd6b4ed2a6eaa201ec16f081bbaad718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0fd8bcd687dbbc437d0e95b7b62909cd2613c43823425200f1e6989252fccbfc6a016ebaf9558a6ac3cd7707c32352668dcb5cfc7abdab163fbf12650e8974a266002f9023a0181bd849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b28c2441231191a521621fae6b54b06211b381f4f11ca019e2c3c0814929ed78fa9eeaf286a1b3c42854a642ed1b42d38f6d5c47d5e3ca5d9d1a83eef4edc5d01562f0398d9622d9871ca546c9bc04fd3e0284fbf1d3e94e23b25d33908a3763b22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e9aece63cc4761ff65a3409e186d8aadd16d9242706cca6095a8c7aa42ea4257a053e1f08d68493d93e7c6b7b5a535155a62b676097127b8b98754cabbec6aae7202f9023a015e849502f9008505584dc0fc83261b1194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b880713e24c43730000b901c4666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009f1bfd2e804e37b157fec5f2beb37277786a21e94fba1e1ae209cae9b285a78ef9cb91b54428bb28230c788dc6428c9d09124390fbb232076c46049386ae81a43172bda82613d8daf5b7b091d0949f9e2c58e9b189343484e395b4dbe8e9deb74a26807b00bfe996ea4517a9b7d1cbbb82d23f99487d7a362b5dda38fc611fb589418cf0aa125bb90b1b6e29a65436f8c87fe17f014c8f38fc1f8ff16609b834ea0d041a10b45c160b9c53664871c7b10a02f343590dc45fe288099d4fca2d3678dcfbe23f194f8364b9e34635ecd5b474ed7836af67dd6cc5a39dc59202e3aacf5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0363aa457d18ffaeed29b608301e59ec2a25a763bf78ea07361ebaf355d3eee33a01e6765b34d8c09ab4979df081c92090b726c25083c08e48a4039571e8d1b9e9902f90219011e849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae085cdf73d637ea3f73699d9bdbf81fc9dc55f10d8c5e09eb811f5ffe9bd455fa060fbe0f5f49580bd235aa4c61a66ef8dafd2f661320122b5bc83dfcab63a725df56dec48daab045ac60c8897583b114d20f0705a155f40935e7628d2a66cf60d14b0fb6ba649284d60ca4d5fd018f80ac8d8bc3108362d3522aa5768049b6bf0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09091ababe9d0f3c9667ac9faf36b4a10fcb88dec054002539eb8afaf2005c15ea04fbc7ca665c123a9065dd3618c5bc19d54250c7fe354019b749f057e640b4ce702f8700113849502f9008505584dc0fc8306ff6794f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a02830be0700c4eb240dcf8aacfb2d49ad5c6cfa525bb336b9b369aa2292975839a028789b6be45c3a514b3a0461dcc298b2871102e3eaedec9f0b2780af5c8f091402f90239010c849502f9008505584dc0fc830536ef94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b901c4666c00aa00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009d978ba13bebdd0420e808733923129d2e9197f382a25e3e61e17f1e1e46f2334de30cd3388d1a773d9f5fb4b333ce98a39458e4bfdfe81ee6bc9ff9d3bbf42f35787958f37f09e017ae48de338e391323eb3817a09fcd2f084d782df532ef768ae58c0659cecf668d4c1616de550c04e7dface8b951552580a4b77f0c3e70a87b742dd0b61e086f3e5aef31170384d31ccc1ca8fb75f2913a6abf4f697440622293fc46b92e942d8a1028494f50020d102f9dcc6bb705418fd2e8988337c3fddebd0bc0b8740df88074b3a73716023fc3e52ac02392e091a51f18872732a9c2d47af97052ed8026631afaf913ba92ead0f95804b5afbda8ac5f3e10f5d27fb240442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc080a04f7accfa0658d70c7bfc91e2f6f51387929e70f90802e49f762e15afcc0384eda0690f1971a83e3c7b456cbe62f9cab8dbab58a6fad6e1199b834233555f8eabcf02f8700108849502f9008505584dc0fc8305201494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a023de1824fa281e2bacdea39955e4addeaa6525d9b9cf995358c65fe00996bc89a04d28b03452ce2f2a00c59cc68b7267fa6d67341a6be08a86292ced61c6e9d38a02f9023b01820107849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b03550d7e417ebc11f274e7ba4d9a1df4351fb264416ae7a230103bcde0396cf4185b06f0c0178b1756f08470c4f1e29b4d692383a7dd5d508ccd24aaa2dc4b17ba3d9ee7ad6b914ef0c6ce0fd3f76ea8f318b169143e0d2aa47d2ec5e9c3c3db1cda86aca26bbb0c88b68d60cc2dbfeee0ee5e5568e40c2485ca4c0979f0a798361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07cf5f24567f7d7f2adb3b3468ac43dc3c4b1ae1e82dc966eb0c98737f181f49ca05b07fe8da9b9a78f5fc5f0c7a3a27d9ae2156a707049cf64d4f6b0dd6505c16002f9023a0181de849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc1731cdaa718634fa805240267f2c7440a5eeec4bbba1ae2f3b8291c67e5ddc124e93441c761cf8775c4802619ceb01d51d8d635c866447cab66fa5127880a253dcbe248a07bc8251b951cd4b3b6faa63cab80808d456c6b71ff7db1a87af0433ac73431e9c2315f4a9e75c67b1d4a5214ae452ef8227b0c7cf5364e6747ac4fad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a03624d5079f9fac64143cbf62369da65a7402eae7995e79234ed0cb71a86ed78ba027cad9bc4b671c5d439d0f6e115d98535c34416698d65ac2b167d4cbc0b904ad02f90239014c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdfe2b215ed990fd933ff40aa6b470585f712e79735a97ef89b9c8ecf2415e27c2aa4f180d6dc6ed3c2ed9e30994fa6bca520f657ada9277d5887af4e541f56e964da476bb44d716ad470b26b162a0e8bd5712c18b4252332643b04aeaecf01b95fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a033d7f0c877c912f7edac349de00d14e03233fd9a21d2d5c5bd4ddb421ada9bd6a055fa14e1fd2f39023eae7367a9ec771a3bdb1a1ae6d1b2e99525b5d79e78d24c02f9023a018195849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bab7e481a825814e1d99b6d0bd7692187dab1917ae407c716b4638f4d4e562738840be20d182aa21dfd006d26115b64992ee21d17170be77ffea4f0da024e64f93f995517d9918c997427f568372b554c650a64996ca538fd6ae05a40e3b8db54c0c7dc6e84432959d8e88803edc5529acc63827aa479a7b01237ae1fc8084425f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a09d39e25ae8fe84578b32809cf3c1925f92292147d95d3676a2d5b466d8530de3a05bc65c01d1dc7881d77bc81ca6ad3d9a075eecb8a3b1dcb3e643fb076d677eba02f9023a0181ad849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4e03a29942868b08ab540dac1c97e5de3281dd97e72f236cdc6ad209fbd0341bdb0b46751528d1967c5f486d1f5b4fe2da99316bcf738158c3fd8835473af580cb5980f67eb63cb64d3144878c512fe3214732c45dc44006369691eca9adffda3a90319b36295833e302342943d4433a8373940bf96835db19a51a35071046dbe0b04471e38d438279becf0fc1aab239877a95f1629f992c2dc289eac8dc4760a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00bd9c1947f7649852eaf4032b0afbe77da99cf0dc6c18957a72eab83845f249fa02a419c78bade4eb153716c44d95f5de13025e801418d3447abdc13d48d494ca402f90279011a849502f9008505584dc0fc8308b5d094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87f195a3c4ba0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bb3f22ad8ea9e70b75e62c8c7adc4b3aa1c542e94606d7d02c75da23272fb5ecc82dd8cac11e3d7bc1d01e1640731e11b861a49146ab9cb959da31e932927e3fd5f93669e431fa3c499b9b5c25e2f72e6ad64574690362a7ee400fdbf00d0f846205af47fcd96dc251a27724191a73b720f71687f53dd2bb8a9dc98f8c370b56147260205584b26bcdf5dd2d486db74ab07f8c095d5106db78bede89a7b4acb6124f2c26fb0812e410cbe97f2a38f9ccdf5ab072620536597f08b6359d4eb25200e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0c08adc09c4b97ffb7e6a118baffaf79ceee1af1795fe5c1ae2c039c57d04436ea008cbe599f7a2d07927394f448114dc63aeba9e7aae59b9deb30dac7c5f3a050402f9023a0181fc849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd959aa18190ca73b6f20946e6c39526535466345af139cc486b23a54e635eda0e6d9017ce4be3ac29eb61a31ff9bc35ae8f20c08b5d811769f885068a4c1ca91b41573e21ef2fcec436d0b504aecea78583bbec5bb6873a250be7412e598b4f09401bb360c3100175b46dd722a8088d82e60b0c71a59d301b81d7bb7cf7e87c7dd7082d9a12cd7326d3355e6cec5fcf4ffe87221a5341f03a3238bf4e741432b59534ee891dc7b31c689f26da2d42c9d5169363891bad63efa35390a39433d4a1e43257fca161d36bc6af6f7c08e0a55f2644a631163b9c16f0d890de7f223cb367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a085829d1f49cf4cb058f60744bd9d7fcc2b10d38f86aa8879f6cf9a051d16b88ba037a29c86225563115070f41835ac3b1e2cfed81fd19ee15d125a456c619cf25002f9023a0181d8849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9626291ccde3e734b4679c678b26cba8551f1f92f84f44963f65d3a9608e9598be5f50e28b64e7927c627ceaa2925c95a594888586ab6257d68b64d898034b0c7c5122a241bb52d7f8b94632b4dcc7641e7f1ecaa157628d50ace2d436554028372755e99db10d981dc9ae18b6f26f5dc24451a8e9565c4ae7cdb4570a55ac4506ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0ddf7b3d4bae285aff45140358532c0caa833bd6cbc22af7319c3b032d4e79690a052d967da6febb2f71da8fecb3779db1c737d870f13275982f5fd58fed1bd6b5202f90239014c849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b22b7d1d09123f187b961e90452aba6b711c5cb2ac6f3bddf1c721519ac4757c701e90a628ec97d4193d8f11f75ed1356179d660af0b336f19c09ffea003329ff8f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a091c47b1d5a8628fd66e9bcadf2ee9a36d5d4b5d0c9cfd61196181166e3a6d843a077198438f7ef8165dbbda66042502c3c08316c3178039618337214f2780a1b4502f901f90140849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000094be7351f4a14055d843b16ae7fcc27c3496667e7367ab20bdccbdb1e95bfd96ee1c70ab57dcc574ca41295e85942c1febe38801a116c77e84fcf248815400feb842c9280afc0eb24b286473dc6ec60d11dc9d669bcb9bd45d7cb86000d354cdffadfa13b13e721ec7ad89696360858786b5cda930ad671e871f67f2811dc4b08e2fb2c969a8ab4ad0920f0ef7558bd32d4685bb0fbe1121fbe8988e7774d7162f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0a2c51935413a14c1516e7da63eae5907d2c8a0270ae04e9c7c76731615c27c31a0477b14756d724bce01b3a812bc50a805c5dd1698236d35c851ea99f3056da27d02f9023b01820152849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b635d6ce272c67784b2a789dba352d1091ae1848c2627562e6e109435868c9bf29d441e8cf9a8de7fdba6fe0d5bf524a3e125737e2c92c22a4cfb684fe3ab61e1a10c20800d2e62bcba930bb7d7249c1811fd1c97a3bd8c0415649adb3ca013433725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a93f711a68db52306b540c14e254585fb97554533d8b33eec198a3c8456b9d2ba0425143660da44f3f923f50fd9e76b3b8ab1c64e8276d7f10f745f31fe91b6c5302f902390132849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0605f27dbbe18355420e4129e59bfc8797ed2cfaf7a3953455ee4ec8d2df9c82ddc04e9555712c5218211a6e2a3aac3de33748c82e25d5e27125132b171fdc57095ef874f8e9a4a0502b188a1ae9ccf6adfb75c4395db8eb64ca83a9666502a68da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06abb0d828df4d875ca00ac844ea72a8ab4ae05d88ef7ddcfeba9934f3f9c8acda074137e3ce2e0802e52e851f662832449a9d536053440fc7c60883506a3090e9902f902590115849502f9008505584dc0fc830262d294c25eafabd9946abeabe1c9452da046b40f19e39a8738d7ea4c680000b901e4642d4214000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000b8faba8b4774687858ca53f09ff6fd09bdad48ab731f767f73bf9535c7b16bbc68585d1cd2e4cf3a290b99b0fa866029bb020cb02b9b3b4f38ee5927e00b368db18cc69da7ef11b054756d2d0dba25fdbf269d2ad737eedb6851329a1ca122cb3e359f2767acff23f4ac5b11a89695789ff9f98ae2bccd02b43dcf8f50f03302dd7025e76856698c2ee9b1ba2e95cb2cb3b765ce2313865a342fd8558d62175d9a32778ef89742118439766b311ef4cf5a4d328b7344f327ae67a32f9afb6a940e05cc2e7b9f793229b8317ef221cbf7465640e0d6e3c5f1ec209c037b10ec8420f1bc8161156421a1c19b9a708112433f6cb4942a2cecb9b36f438ccafc359d9605bc8da2b6c8af52a524e946d908add61fae75d500db43f777b5bcd16606d9e883a7f36377aca34b243adbfd004defb867d541a7c419d1aa74c1239a30b1660cd373cb958eada7a64fd9d464606bdb8bf66011af70051e2d352eb416396163ac001a07856e71d865715d934eb14d62c5472ac3ec70f9ca91221427aa20a55968fdc5ca05ae37f7629482234d1bd23a0d7f738fe4a9bb446ff8a7e81fc039a33e787a98e02f90112016b8502887fb6dc85033cae1ce3830151f594485d17a6f1b8780392d53d64751824253011a26080b8a44000aea00000000000000000000000003b198e26e473b8fab2085b37978e36c9de5d7f6800000000000000000000000000000000000000000000000000000001dc63df20000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038c001a09bf7ac9e214e9430d9652aeb310db34e28ce2eaabb2786976ba1d92e04328824a04b40c7315d265588aeeef4b27aaa52311477284fd7da7571aca243a267d5843702f87201058477359400850342770c00825208942c35f9a466d1cae63d46174120b1d9edd648648687fd7e3b419a96b280c080a0220d14ab163184e70a277e133db3945bebccc2d14e0983b1b02255eaab030046a03de8350f06c5505bd81fae05a46e6a347f2b0b14541fa9f247fda4fb3fa65eeb02f8b00114847735940085041a25574482b62394da4dd9586d27202a338843dd6b9824d26700678380b844095ea7b3000000000000000000000000881d40237659c251811cec9c364ef91dc08d300cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0f7066f9fa30c3104a9ca1f3710625dc4165214d6b799eb1e677de212691addeaa050a85e0730ef42da12278ae6f0c332c5de60a433b02d05f786be0acbfb6d9e0602f87201808477359400850342770c008252089461b260db23f294330adadcc9f7b25e23496bfa89870f867de9ab200080c080a0a704102fb39810e0dc1d8bf7e116cd6868961c9e7b2de57f6f123f2b644fb53ba019defcebbb78d4b7fbf033b8bb42dc91b0814746fe154d07869a224badebe08802f872018301a53e808502ae870322825208944675c7e5baafbffbca748158becba61ef3b0a2638807d04a00cfc7c3f180c080a01584761166d6fea147f4dcf8e544319c8d664dd394ccd66f47a2fb691081a974a04b7a4d9552d1a224aa2abad57a422e96c059c195e5b71498c20e0be4ea31b15c")
diff --git a/cl/phase1/core/state/cache.go b/cl/phase1/core/state/cache.go
index 76d71aa446a..615d253c527 100644
--- a/cl/phase1/core/state/cache.go
+++ b/cl/phase1/core/state/cache.go
@@ -199,10 +199,10 @@ func (b *CachingBeaconState) _refreshActiveBalances() {
func (b *CachingBeaconState) initCaches() error {
var err error
- if b.activeValidatorsCache, err = lru.New[uint64, []uint64]("beacon_active_validators_cache", 5); err != nil {
+ if b.activeValidatorsCache, err = lru.New[uint64, []uint64]("beacon_active_validators_cache", 3); err != nil {
return err
}
- if b.shuffledSetsCache, err = lru.New[common.Hash, []uint64]("beacon_shuffled_sets_cache", 5); err != nil {
+ if b.shuffledSetsCache, err = lru.New[common.Hash, []uint64]("beacon_shuffled_sets_cache", 3); err != nil {
return err
}
return nil
diff --git a/cl/phase1/core/state/lru/lru.go b/cl/phase1/core/state/lru/lru.go
index 9255f8af93c..b1da5285616 100644
--- a/cl/phase1/core/state/lru/lru.go
+++ b/cl/phase1/core/state/lru/lru.go
@@ -4,7 +4,7 @@ import (
"fmt"
lru "github.com/hashicorp/golang-lru/v2"
- "github.com/ledgerwatch/erigon/metrics"
+ "github.com/ledgerwatch/erigon-lib/metrics"
)
// Cache is a wrapper around hashicorp lru but with metric for Get
diff --git a/cl/phase1/core/state/raw/copy.go b/cl/phase1/core/state/raw/copy.go
index 4e547c71763..909fd3db9b9 100644
--- a/cl/phase1/core/state/raw/copy.go
+++ b/cl/phase1/core/state/raw/copy.go
@@ -1,8 +1,6 @@
package raw
import (
- "fmt"
-
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
@@ -65,6 +63,5 @@ func (b *BeaconState) CopyInto(dst *BeaconState) error {
func (b *BeaconState) Copy() (*BeaconState, error) {
copied := New(b.BeaconConfig())
- fmt.Println(copied.slashings)
return copied, b.CopyInto(copied)
}
diff --git a/cl/phase1/core/state/shuffling/shuffling_test.go b/cl/phase1/core/state/shuffling/shuffling_test.go
index 2a80c1295b1..435bc7b734a 100644
--- a/cl/phase1/core/state/shuffling/shuffling_test.go
+++ b/cl/phase1/core/state/shuffling/shuffling_test.go
@@ -2,12 +2,12 @@ package shuffling_test
import (
_ "embed"
+ "github.com/ledgerwatch/erigon-lib/common/eth2shuffle"
"testing"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
"github.com/ledgerwatch/erigon/cl/phase1/core/state/raw"
"github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling"
- "github.com/ledgerwatch/erigon/common/eth2shuffle"
"github.com/stretchr/testify/require"
"github.com/ledgerwatch/erigon/cl/clparams"
diff --git a/cl/phase1/core/state/shuffling/util.go b/cl/phase1/core/state/shuffling/util.go
index 0eb6e9e67ce..b277d2f0091 100644
--- a/cl/phase1/core/state/shuffling/util.go
+++ b/cl/phase1/core/state/shuffling/util.go
@@ -3,11 +3,11 @@ package shuffling
import (
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/eth2shuffle"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/common/eth2shuffle"
)
func ComputeShuffledIndex(conf *clparams.BeaconChainConfig, ind, ind_count uint64, seed [32]byte, preInputs [][32]byte, hashFunc utils.HashFunc) (uint64, error) {
diff --git a/cl/phase1/core/state/ssz.go b/cl/phase1/core/state/ssz.go
index ce7209d6a95..85a68cd6969 100644
--- a/cl/phase1/core/state/ssz.go
+++ b/cl/phase1/core/state/ssz.go
@@ -1,8 +1,8 @@
package state
import (
+ "github.com/ledgerwatch/erigon-lib/metrics"
"github.com/ledgerwatch/erigon-lib/types/clonable"
- "github.com/ledgerwatch/erigon/metrics"
)
func (b *CachingBeaconState) EncodeSSZ(buf []byte) ([]byte, error) {
diff --git a/cl/phase1/execution_client/execution_client_direct.go b/cl/phase1/execution_client/execution_client_direct.go
index dc4674fb2ef..1d817dfca2a 100644
--- a/cl/phase1/execution_client/execution_client_direct.go
+++ b/cl/phase1/execution_client/execution_client_direct.go
@@ -96,3 +96,7 @@ func (cc *ExecutionClientDirect) GetBodiesByRange(start, count uint64) ([]*types
func (cc *ExecutionClientDirect) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) {
return cc.chainRW.GetBodiesByHases(hashes), nil
}
+
+func (cc *ExecutionClientDirect) FrozenBlocks() uint64 {
+ return cc.chainRW.FrozenBlocks()
+}
diff --git a/cl/phase1/execution_client/execution_client_rpc.go b/cl/phase1/execution_client/execution_client_rpc.go
index 20c5fb83550..82515a2f5fb 100644
--- a/cl/phase1/execution_client/execution_client_rpc.go
+++ b/cl/phase1/execution_client/execution_client_rpc.go
@@ -3,6 +3,7 @@ package execution_client
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"net/http"
"strings"
@@ -12,7 +13,6 @@ import (
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/phase1/execution_client/rpc_helper"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/turbo/engineapi/engine_types"
@@ -224,3 +224,7 @@ func (cc *ExecutionClientRpc) GetBodiesByHashes(hashes []libcommon.Hash) ([]*typ
}
return ret, nil
}
+
+func (cc *ExecutionClientRpc) FrozenBlocks() uint64 {
+ panic("unimplemented")
+}
diff --git a/cl/phase1/execution_client/interface.go b/cl/phase1/execution_client/interface.go
index e6aad186ee5..a83c60c9489 100644
--- a/cl/phase1/execution_client/interface.go
+++ b/cl/phase1/execution_client/interface.go
@@ -22,4 +22,6 @@ type ExecutionEngine interface {
// Range methods
GetBodiesByRange(start, count uint64) ([]*types.RawBody, error)
GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error)
+ // Snapshots
+ FrozenBlocks() uint64
}
diff --git a/cl/phase1/forkchoice/fork_choice_test.go b/cl/phase1/forkchoice/fork_choice_test.go
index e4c8ceb2e7d..4b5c5d81975 100644
--- a/cl/phase1/forkchoice/fork_choice_test.go
+++ b/cl/phase1/forkchoice/fork_choice_test.go
@@ -8,7 +8,9 @@ import (
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
"github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
+ "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph"
"github.com/ledgerwatch/erigon/cl/pool"
+ "github.com/spf13/afero"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -49,7 +51,7 @@ func TestForkChoiceBasic(t *testing.T) {
anchorState := state.New(&clparams.MainnetBeaconConfig)
require.NoError(t, utils.DecodeSSZSnappy(anchorState, anchorStateEncoded, int(clparams.AltairVersion)))
pool := pool.NewOperationsPool(&clparams.MainnetBeaconConfig)
- store, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool, false)
+ store, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool, fork_graph.NewForkGraphDisk(anchorState, afero.NewMemMapFs()))
require.NoError(t, err)
// first steps
store.OnTick(0)
diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph.go b/cl/phase1/forkchoice/fork_graph/fork_graph_disk.go
similarity index 50%
rename from cl/phase1/forkchoice/fork_graph/fork_graph.go
rename to cl/phase1/forkchoice/fork_graph/fork_graph_disk.go
index c9cef8ccc75..e57f21bdb67 100644
--- a/cl/phase1/forkchoice/fork_graph/fork_graph.go
+++ b/cl/phase1/forkchoice/fork_graph/fork_graph_disk.go
@@ -1,6 +1,13 @@
package fork_graph
import (
+ "bytes"
+ "encoding/binary"
+ "errors"
+ "fmt"
+ "os"
+
+ "github.com/golang/snappy"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
@@ -8,9 +15,11 @@ import (
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
"github.com/ledgerwatch/erigon/cl/transition"
"github.com/ledgerwatch/log/v3"
- "golang.org/x/exp/slices"
+ "github.com/spf13/afero"
)
+var ErrStateNotFound = errors.New("state not found")
+
type ChainSegmentInsertionResult uint
const (
@@ -22,51 +31,129 @@ const (
PreValidated ChainSegmentInsertionResult = 5
)
-const snapshotStateEverySlot = 64
-
-/*
-* The state store process is related to graph theory in the sense that the Ethereum blockchain can be thought of as a directed graph,
-* where each block represents a node and the links between blocks represent directed edges.
-* In this context, rolling back the state of Ethereum to a previous state can be thought of as traversing the graph in reverse,
-* from the current state to a previous state.
-* The process of reverting the state involves undoing the changes made in the blocks that have been added to the blockchain since the previous state.
-* This can be thought of as "reversing the edges" in the graph, effectively undoing the changes made to the state of Ethereum.
-* By thinking of the Ethereum blockchain as a graph, we can use graph theory concepts, such as traversal algorithms,
-* to analyze and manipulate the state of the blockchain.
- */
-
// ForkGraph is our graph for ETH 2.0 consensus forkchoice. Each node is a (block root, changes) pair and
// each edge is the path described as (prevBlockRoot, currBlockRoot). if we want to go forward we use blocks.
-type ForkGraph struct {
+type forkGraphDisk struct {
// Alternate beacon states
- currentReferenceState *state.CachingBeaconState
- nextReferenceState *state.CachingBeaconState
- blocks map[libcommon.Hash]*cltypes.SignedBeaconBlock // set of blocks
- headers map[libcommon.Hash]*cltypes.BeaconBlockHeader // set of headers
- badBlocks map[libcommon.Hash]struct{} // blocks that are invalid and that leads to automatic fail of extension.
+ fs afero.Fs
+ blocks map[libcommon.Hash]*cltypes.SignedBeaconBlock // set of blocks
+ headers map[libcommon.Hash]*cltypes.BeaconBlockHeader // set of headers
+ badBlocks map[libcommon.Hash]struct{} // blocks that are invalid and that leads to automatic fail of extension.
// current state data
currentState *state.CachingBeaconState
currentStateBlockRoot libcommon.Hash
- // childrens maps each block roots to its children block roots
- childrens map[libcommon.Hash][]libcommon.Hash
// for each block root we also keep track of te equivalent current justified and finalized checkpoints for faster head retrieval.
currentJustifiedCheckpoints map[libcommon.Hash]solid.Checkpoint
finalizedCheckpoints map[libcommon.Hash]solid.Checkpoint
- // Disable for tests
- enabledPruning bool
+
// configurations
beaconCfg *clparams.BeaconChainConfig
genesisTime uint64
// highest block seen
- highestSeen uint64
+ highestSeen, anchorSlot uint64
+
+ // reusable buffers
+ sszBuffer bytes.Buffer
+ sszSnappyBuffer bytes.Buffer
+}
+
+func getBeaconStateFilename(blockRoot libcommon.Hash) string {
+ return fmt.Sprintf("%x.snappy_ssz", blockRoot)
}
-func (f *ForkGraph) AnchorSlot() uint64 {
- return f.currentReferenceState.Slot()
+func (f *forkGraphDisk) readBeaconStateFromDisk(blockRoot libcommon.Hash) (bs *state.CachingBeaconState, err error) {
+ var file afero.File
+ file, err = f.fs.Open(getBeaconStateFilename(blockRoot))
+
+ if err != nil {
+ return
+ }
+ defer file.Close()
+ // Read the version
+ v := []byte{0}
+ if _, err := file.Read(v); err != nil {
+ return nil, err
+ }
+ // Read the length
+ lengthBytes := make([]byte, 8)
+ _, err = file.Read(lengthBytes)
+ if err != nil {
+ return
+ }
+ // Grow the snappy buffer
+ f.sszSnappyBuffer.Grow(int(binary.BigEndian.Uint64(lengthBytes)))
+ // Read the snappy buffer
+ sszSnappyBuffer := f.sszSnappyBuffer.Bytes()
+ sszSnappyBuffer = sszSnappyBuffer[:cap(sszSnappyBuffer)]
+ var n int
+ n, err = file.Read(sszSnappyBuffer)
+ if err != nil {
+ return
+ }
+
+ decLen, err := snappy.DecodedLen(sszSnappyBuffer[:n])
+ if err != nil {
+ return
+ }
+ // Grow the plain ssz buffer
+ f.sszBuffer.Grow(decLen)
+ sszBuffer := f.sszBuffer.Bytes()
+ sszBuffer, err = snappy.Decode(sszBuffer, sszSnappyBuffer[:n])
+ if err != nil {
+ return
+ }
+ bs = state.New(f.beaconCfg)
+ err = bs.DecodeSSZ(sszBuffer, int(v[0]))
+ return
+}
+
+// dumpBeaconStateOnDisk dumps a beacon state on disk in ssz snappy format
+func (f *forkGraphDisk) dumpBeaconStateOnDisk(bs *state.CachingBeaconState, blockRoot libcommon.Hash) (err error) {
+ // Truncate and then grow the buffer to the size of the state.
+ encodingSizeSSZ := bs.EncodingSizeSSZ()
+ f.sszBuffer.Grow(encodingSizeSSZ)
+ f.sszBuffer.Reset()
+
+ sszBuffer := f.sszBuffer.Bytes()
+ sszBuffer, err = bs.EncodeSSZ(sszBuffer)
+ if err != nil {
+ return
+ }
+ // Grow the snappy buffer
+ f.sszSnappyBuffer.Grow(snappy.MaxEncodedLen(len(sszBuffer)))
+ // Compress the ssz buffer
+ sszSnappyBuffer := f.sszSnappyBuffer.Bytes()
+ sszSnappyBuffer = sszSnappyBuffer[:cap(sszSnappyBuffer)]
+ sszSnappyBuffer = snappy.Encode(sszSnappyBuffer, sszBuffer)
+ var dumpedFile afero.File
+ dumpedFile, err = f.fs.OpenFile(getBeaconStateFilename(blockRoot), os.O_TRUNC|os.O_CREATE|os.O_RDWR, 0o755)
+ if err != nil {
+ return
+ }
+ // First write the hard fork version
+ _, err = dumpedFile.Write([]byte{byte(bs.Version())})
+ if err != nil {
+ return
+ }
+ // Second write the length
+ length := make([]byte, 8)
+ binary.BigEndian.PutUint64(length, uint64(len(sszSnappyBuffer)))
+ _, err = dumpedFile.Write(length)
+ if err != nil {
+ return
+ }
+ // Lastly dump the state
+ _, err = dumpedFile.Write(sszSnappyBuffer)
+ if err != nil {
+ return
+ }
+
+ err = dumpedFile.Sync()
+ return
}
// Initialize fork graph with a new state
-func New(anchorState *state.CachingBeaconState, enabledPruning bool) *ForkGraph {
+func NewForkGraphDisk(anchorState *state.CachingBeaconState, aferoFs afero.Fs) ForkGraph {
farthestExtendingPath := make(map[libcommon.Hash]bool)
anchorRoot, err := anchorState.BlockRoot()
if err != nil {
@@ -80,17 +167,9 @@ func New(anchorState *state.CachingBeaconState, enabledPruning bool) *ForkGraph
headers[anchorRoot] = &anchorHeader
farthestExtendingPath[anchorRoot] = true
- currentStateReference, err := anchorState.Copy()
- if err != nil {
- panic(err)
- }
- nextStateReference, err := anchorState.Copy()
- if err != nil {
- panic(err)
- }
- return &ForkGraph{
- currentReferenceState: currentStateReference,
- nextReferenceState: nextStateReference,
+
+ f := &forkGraphDisk{
+ fs: aferoFs,
// storage
blocks: make(map[libcommon.Hash]*cltypes.SignedBeaconBlock),
headers: headers,
@@ -98,20 +177,24 @@ func New(anchorState *state.CachingBeaconState, enabledPruning bool) *ForkGraph
// current state data
currentState: anchorState,
currentStateBlockRoot: anchorRoot,
- // childrens
- childrens: make(map[libcommon.Hash][]libcommon.Hash),
// checkpoints trackers
currentJustifiedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint),
finalizedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint),
- enabledPruning: enabledPruning,
// configuration
beaconCfg: anchorState.BeaconConfig(),
genesisTime: anchorState.GenesisTime(),
+ anchorSlot: anchorState.Slot(),
}
+ f.dumpBeaconStateOnDisk(anchorState, anchorRoot)
+ return f
+}
+
+func (f *forkGraphDisk) AnchorSlot() uint64 {
+ return f.anchorSlot
}
// Add a new node and edge to the graph
-func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) {
+func (f *forkGraphDisk) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) {
block := signedBlock.Block
blockRoot, err := block.HashSSZ()
if err != nil {
@@ -122,7 +205,7 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full
return nil, PreValidated, nil
}
// Blocks below anchors are invalid.
- if block.Slot <= f.currentReferenceState.Slot() {
+ if block.Slot <= f.anchorSlot {
log.Debug("block below anchor slot", "slot", block.Slot, "hash", libcommon.Hash(blockRoot))
f.badBlocks[blockRoot] = struct{}{}
return nil, BelowAnchor, nil
@@ -134,7 +217,7 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full
return nil, InvalidBlock, nil
}
- newState, didLongRecconnection, err := f.GetState(block.ParentRoot, false)
+ newState, err := f.GetState(block.ParentRoot, false)
if err != nil {
return nil, InvalidBlock, err
}
@@ -142,22 +225,20 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full
log.Debug("AddChainSegment: missing segment", "block", libcommon.Hash(blockRoot))
return nil, MissingSegment, nil
}
- // if we did so by long recconection, i am afraid we need to discard the current state.
- if didLongRecconnection {
- log.Debug("AddChainSegment: Resetting state reference as it was orphaned")
- f.currentReferenceState.CopyInto(f.nextReferenceState)
- }
// Execute the state
if invalidBlockErr := transition.TransitionState(newState, signedBlock, fullValidation); invalidBlockErr != nil {
// Add block to list of invalid blocks
log.Debug("Invalid beacon block", "reason", invalidBlockErr)
f.badBlocks[blockRoot] = struct{}{}
- f.nextReferenceState.CopyInto(f.currentState)
- f.currentStateBlockRoot, err = f.nextReferenceState.BlockRoot()
+ f.currentStateBlockRoot = libcommon.Hash{}
+ f.currentState, err = f.GetState(block.ParentRoot, true)
if err != nil {
- log.Error("[Caplin] Could not recover from invalid block")
+ log.Error("[Caplin] Could not recover from invalid block", "err", err)
+ } else {
+ f.currentStateBlockRoot = block.ParentRoot
}
+
return nil, InvalidBlock, invalidBlockErr
}
@@ -173,8 +254,13 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full
Root: block.StateRoot,
BodyRoot: bodyRoot,
}
- // Update the children of the parent
- f.updateChildren(block.ParentRoot, blockRoot)
+
+ if newState.Slot()%f.beaconCfg.SlotsPerEpoch == 0 {
+ if err := f.dumpBeaconStateOnDisk(newState, blockRoot); err != nil {
+ return nil, LogisticError, err
+ }
+ }
+
// Lastly add checkpoints to caches as well.
f.currentJustifiedCheckpoints[blockRoot] = newState.CurrentJustifiedCheckpoint().Copy()
f.finalizedCheckpoints[blockRoot] = newState.FinalizedCheckpoint().Copy()
@@ -182,122 +268,86 @@ func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, full
f.highestSeen = newState.Slot()
f.currentState = newState
f.currentStateBlockRoot = blockRoot
- if newState.Slot()%snapshotStateEverySlot == 0 && f.nextReferenceState.Slot() > f.beaconCfg.SlotsPerEpoch && f.enabledPruning {
- if err := f.removeOldData(); err != nil {
- return nil, LogisticError, err
- }
- }
}
return newState, Success, nil
}
-func (f *ForkGraph) GenesisTime() uint64 {
- return f.genesisTime
-}
-
-func (f *ForkGraph) Config() *clparams.BeaconChainConfig {
- return f.beaconCfg
-}
-
-func (f *ForkGraph) GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) {
+func (f *forkGraphDisk) GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) {
obj, has := f.headers[blockRoot]
return obj, has
}
-func (f *ForkGraph) getBlock(blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, bool) {
+func (f *forkGraphDisk) getBlock(blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, bool) {
obj, has := f.blocks[blockRoot]
return obj, has
}
-func (f *ForkGraph) GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, bool, error) {
+func (f *forkGraphDisk) GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) {
+ if f.currentStateBlockRoot == blockRoot {
+ if alwaysCopy {
+ ret, err := f.currentState.Copy()
+ return ret, err
+ }
+ return f.currentState, nil
+ }
+
// collect all blocks beetwen greatest extending node path and block.
blocksInTheWay := []*cltypes.SignedBeaconBlock{}
// Use the parent root as a reverse iterator.
currentIteratorRoot := blockRoot
- // use the current reference state root as reconnectio
- reconnectionRootLong, err := f.currentReferenceState.BlockRoot()
- if err != nil {
- return nil, false, err
- }
- reconnectionRootShort, err := f.nextReferenceState.BlockRoot()
- if err != nil {
- return nil, false, err
- }
+
// try and find the point of recconection
- for currentIteratorRoot != reconnectionRootLong && currentIteratorRoot != reconnectionRootShort {
+ for {
block, isSegmentPresent := f.getBlock(currentIteratorRoot)
if !isSegmentPresent {
- log.Debug("Could not retrieve state: Missing header", "missing", currentIteratorRoot,
- "longRecconection", libcommon.Hash(reconnectionRootLong), "shortRecconection", libcommon.Hash(reconnectionRootShort))
- return nil, false, nil
+ // check if it is in the header
+ bHeader, ok := f.GetHeader(currentIteratorRoot)
+ if ok && bHeader.Slot%f.beaconCfg.SlotsPerEpoch == 0 {
+ break
+ }
+
+ log.Debug("Could not retrieve state: Missing header", "missing", currentIteratorRoot)
+ return nil, nil
+ }
+ if block.Block.Slot%f.beaconCfg.SlotsPerEpoch == 0 {
+ break
}
blocksInTheWay = append(blocksInTheWay, block)
currentIteratorRoot = block.Block.ParentRoot
}
-
- var copyReferencedState *state.CachingBeaconState
- didLongRecconnection := currentIteratorRoot == reconnectionRootLong && reconnectionRootLong != reconnectionRootShort
- if f.currentStateBlockRoot == blockRoot {
- if alwaysCopy {
- ret, err := f.currentState.Copy()
- return ret, didLongRecconnection, err
- }
- return f.currentState, didLongRecconnection, nil
+ copyReferencedState, err := f.readBeaconStateFromDisk(currentIteratorRoot)
+ if err != nil {
+ return nil, err
}
- // Take a copy to the reference state.
- if currentIteratorRoot == reconnectionRootLong {
- copyReferencedState, err = f.currentReferenceState.Copy()
- if err != nil {
- return nil, true, err
- }
-
- } else {
- copyReferencedState, err = f.nextReferenceState.Copy()
- if err != nil {
- return nil, false, err
- }
+ if copyReferencedState == nil {
+ return nil, ErrStateNotFound
}
// Traverse the blocks from top to bottom.
for i := len(blocksInTheWay) - 1; i >= 0; i-- {
if err := transition.TransitionState(copyReferencedState, blocksInTheWay[i], false); err != nil {
- return nil, didLongRecconnection, err
+ return nil, err
}
}
- return copyReferencedState, didLongRecconnection, nil
+ return copyReferencedState, nil
}
-// updateChildren adds a new child to the parent node hash.
-func (f *ForkGraph) updateChildren(parent, child libcommon.Hash) {
- childrens := f.childrens[parent]
- if slices.Contains(childrens, child) {
- return
- }
- childrens = append(childrens, child)
- f.childrens[parent] = childrens
-}
-
-// GetChildren retrieves the children block root of the given block root.
-func (f *ForkGraph) GetChildren(parent libcommon.Hash) []libcommon.Hash {
- return f.childrens[parent]
-}
-
-func (f *ForkGraph) GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) {
+func (f *forkGraphDisk) GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) {
obj, has := f.currentJustifiedCheckpoints[blockRoot]
return obj, has
}
-func (f *ForkGraph) GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) {
+func (f *forkGraphDisk) GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) {
obj, has := f.finalizedCheckpoints[blockRoot]
return obj, has
}
-func (f *ForkGraph) MarkHeaderAsInvalid(blockRoot libcommon.Hash) {
+func (f *forkGraphDisk) MarkHeaderAsInvalid(blockRoot libcommon.Hash) {
f.badBlocks[blockRoot] = struct{}{}
}
-func (f *ForkGraph) removeOldData() (err error) {
- pruneSlot := f.nextReferenceState.Slot() - f.beaconCfg.SlotsPerEpoch
+func (f *forkGraphDisk) Prune(pruneSlot uint64) (err error) {
+ pruneSlot -= f.beaconCfg.SlotsPerEpoch * 2
oldRoots := make([]libcommon.Hash, 0, len(f.blocks))
for hash, signedBlock := range f.blocks {
if signedBlock.Block.Slot >= pruneSlot {
@@ -308,29 +358,11 @@ func (f *ForkGraph) removeOldData() (err error) {
for _, root := range oldRoots {
delete(f.badBlocks, root)
delete(f.blocks, root)
- delete(f.childrens, root)
delete(f.currentJustifiedCheckpoints, root)
delete(f.finalizedCheckpoints, root)
delete(f.headers, root)
+ f.fs.Remove(getBeaconStateFilename(root))
}
- // Lastly snapshot the state
- err = f.nextReferenceState.CopyInto(f.currentReferenceState)
- if err != nil {
- panic(err) // dead at this point
- }
- err = f.currentState.CopyInto(f.nextReferenceState)
- if err != nil {
- panic(err) // dead at this point
- }
- // use the current reference state root as reconnectio
- reconnectionRootLong, err := f.currentReferenceState.BlockRoot()
- if err != nil {
- panic(err)
- }
- reconnectionRootShort, err := f.nextReferenceState.BlockRoot()
- if err != nil {
- panic(err)
- }
- log.Debug("Pruned old blocks", "pruneSlot", pruneSlot, "longRecconection", libcommon.Hash(reconnectionRootLong), "shortRecconection", libcommon.Hash(reconnectionRootShort))
+ log.Debug("Pruned old blocks", "pruneSlot", pruneSlot)
return
}
diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph_test.go b/cl/phase1/forkchoice/fork_graph/fork_graph_test.go
index 24ec360823b..49dac9fa3d7 100644
--- a/cl/phase1/forkchoice/fork_graph/fork_graph_test.go
+++ b/cl/phase1/forkchoice/fork_graph/fork_graph_test.go
@@ -2,9 +2,11 @@ package fork_graph
import (
_ "embed"
+ "fmt"
"testing"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
+ "github.com/spf13/afero"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
@@ -21,7 +23,7 @@ var block2 []byte
//go:embed test_data/anchor_state.ssz_snappy
var anchor []byte
-func TestForkGraph(t *testing.T) {
+func TestForkGraphInDisk(t *testing.T) {
blockA, blockB, blockC := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig),
cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig), cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
anchorState := state.New(&clparams.MainnetBeaconConfig)
@@ -29,7 +31,7 @@ func TestForkGraph(t *testing.T) {
require.NoError(t, utils.DecodeSSZSnappy(blockB, block2, int(clparams.Phase0Version)))
require.NoError(t, utils.DecodeSSZSnappy(blockC, block2, int(clparams.Phase0Version)))
require.NoError(t, utils.DecodeSSZSnappy(anchorState, anchor, int(clparams.Phase0Version)))
- graph := New(anchorState, false)
+ graph := NewForkGraphDisk(anchorState, afero.NewMemMapFs())
_, status, err := graph.AddChainSegment(blockA, true)
require.NoError(t, err)
require.Equal(t, status, Success)
@@ -39,6 +41,7 @@ func TestForkGraph(t *testing.T) {
require.Error(t, err)
require.Equal(t, status, InvalidBlock)
// Save current state hash
+ fmt.Println("ASADCS")
_, status, err = graph.AddChainSegment(blockB, true)
require.NoError(t, err)
require.Equal(t, status, Success)
@@ -46,5 +49,4 @@ func TestForkGraph(t *testing.T) {
_, status, err = graph.AddChainSegment(blockB, true)
require.NoError(t, err)
require.Equal(t, status, PreValidated)
- graph.removeOldData()
}
diff --git a/cl/phase1/forkchoice/fork_graph/interface.go b/cl/phase1/forkchoice/fork_graph/interface.go
new file mode 100644
index 00000000000..1195e74d1c5
--- /dev/null
+++ b/cl/phase1/forkchoice/fork_graph/interface.go
@@ -0,0 +1,29 @@
+package fork_graph
+
+import (
+ libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/cltypes/solid"
+ "github.com/ledgerwatch/erigon/cl/phase1/core/state"
+)
+
+/*
+* The state store process is related to graph theory in the sense that the Ethereum blockchain can be thought of as a directed graph,
+* where each block represents a node and the links between blocks represent directed edges.
+* In this context, rolling back the state of Ethereum to a previous state can be thought of as traversing the graph in reverse,
+* from the current state to a previous state.
+* The process of reverting the state involves undoing the changes made in the blocks that have been added to the blockchain since the previous state.
+* This can be thought of as "reversing the edges" in the graph, effectively undoing the changes made to the state of Ethereum.
+* By thinking of the Ethereum blockchain as a graph, we can use graph theory concepts, such as traversal algorithms,
+* to analyze and manipulate the state of the blockchain.
+ */
+type ForkGraph interface {
+ AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error)
+ GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool)
+ GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error)
+ GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool)
+ GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool)
+ MarkHeaderAsInvalid(blockRoot libcommon.Hash)
+ AnchorSlot() uint64
+ Prune(uint64) error
+}
diff --git a/cl/phase1/forkchoice/forkchoice.go b/cl/phase1/forkchoice/forkchoice.go
index ac315d05112..68d77363bef 100644
--- a/cl/phase1/forkchoice/forkchoice.go
+++ b/cl/phase1/forkchoice/forkchoice.go
@@ -4,12 +4,14 @@ import (
"context"
"sync"
+ "github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/freezer"
state2 "github.com/ledgerwatch/erigon/cl/phase1/core/state"
"github.com/ledgerwatch/erigon/cl/phase1/execution_client"
"github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph"
"github.com/ledgerwatch/erigon/cl/pool"
+ "golang.org/x/exp/slices"
lru "github.com/hashicorp/golang-lru/v2"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -34,9 +36,12 @@ type ForkChoiceStore struct {
proposerBoostRoot libcommon.Hash
headHash libcommon.Hash
headSlot uint64
+ genesisTime uint64
+ childrens map[libcommon.Hash]childrens
+
// Use go map because this is actually an unordered set
equivocatingIndicies map[uint64]struct{}
- forkGraph *fork_graph.ForkGraph
+ forkGraph fork_graph.ForkGraph
// I use the cache due to the convenient auto-cleanup feauture.
checkpointStates map[checkpointComparable]*checkpointState // We keep ssz snappy of it as the full beacon state is full of rendundant data.
latestMessages map[uint64]*LatestMessage
@@ -50,6 +55,7 @@ type ForkChoiceStore struct {
recorder freezer.Freezer
// operations pool
operationsPool pool.OperationsPool
+ beaconCfg *clparams.BeaconChainConfig
}
type LatestMessage struct {
@@ -57,8 +63,13 @@ type LatestMessage struct {
Root libcommon.Hash
}
+type childrens struct {
+ childrenHashes []libcommon.Hash
+ parentSlot uint64 // we keep this one for pruning
+}
+
// NewForkChoiceStore initialize a new store from the given anchor state, either genesis or checkpoint sync state.
-func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconState, engine execution_client.ExecutionEngine, recorder freezer.Freezer, operationsPool pool.OperationsPool, enabledPruning bool) (*ForkChoiceStore, error) {
+func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconState, engine execution_client.ExecutionEngine, recorder freezer.Freezer, operationsPool pool.OperationsPool, forkGraph fork_graph.ForkGraph) (*ForkChoiceStore, error) {
anchorRoot, err := anchorState.BlockRoot()
if err != nil {
return nil, err
@@ -89,7 +100,7 @@ func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconSt
finalizedCheckpoint: anchorCheckpoint.Copy(),
unrealizedJustifiedCheckpoint: anchorCheckpoint.Copy(),
unrealizedFinalizedCheckpoint: anchorCheckpoint.Copy(),
- forkGraph: fork_graph.New(anchorState, enabledPruning),
+ forkGraph: forkGraph,
equivocatingIndicies: map[uint64]struct{}{},
latestMessages: map[uint64]*LatestMessage{},
checkpointStates: make(map[checkpointComparable]*checkpointState),
@@ -98,6 +109,9 @@ func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconSt
recorder: recorder,
operationsPool: operationsPool,
anchorPublicKeys: anchorPublicKeys,
+ genesisTime: anchorState.GenesisTime(),
+ beaconCfg: anchorState.BeaconConfig(),
+ childrens: make(map[libcommon.Hash]childrens),
}, nil
}
@@ -108,6 +122,28 @@ func (f *ForkChoiceStore) HighestSeen() uint64 {
return f.highestSeen
}
+func (f *ForkChoiceStore) children(parent libcommon.Hash) []libcommon.Hash {
+ children, ok := f.childrens[parent]
+ if !ok {
+ return nil
+ }
+ return children.childrenHashes
+}
+
+// updateChildren adds a new child to the parent node hash.
+func (f *ForkChoiceStore) updateChildren(parentSlot uint64, parent, child libcommon.Hash) {
+ c, ok := f.childrens[parent]
+ if !ok {
+ c = childrens{}
+ }
+ c.parentSlot = parentSlot // can be innacurate.
+ if slices.Contains(c.childrenHashes, child) {
+ return
+ }
+ c.childrenHashes = append(c.childrenHashes, child)
+ f.childrens[parent] = c
+}
+
// AdvanceHighestSeen advances the highest seen block by n and returns the new slot after the change
func (f *ForkChoiceStore) AdvanceHighestSeen(n uint64) uint64 {
f.mu.Lock()
diff --git a/cl/phase1/forkchoice/get_head.go b/cl/phase1/forkchoice/get_head.go
index 1ffcc3365fb..e1300c2c022 100644
--- a/cl/phase1/forkchoice/get_head.go
+++ b/cl/phase1/forkchoice/get_head.go
@@ -32,7 +32,7 @@ func (f *ForkChoiceStore) getHead() (libcommon.Hash, uint64, error) {
filteredIndicies := f.filterValidatorSetForAttestationScores(justificationState, justificationState.epoch)
for {
// Filter out current head children.
- unfilteredChildren := f.forkGraph.GetChildren(f.headHash)
+ unfilteredChildren := f.children(f.headHash)
children := []libcommon.Hash{}
for _, child := range unfilteredChildren {
if _, ok := blocks[child]; ok {
@@ -133,7 +133,7 @@ func (f *ForkChoiceStore) getFilterBlockTree(blockRoot libcommon.Hash, blocks ma
if !has {
return false
}
- children := f.forkGraph.GetChildren(blockRoot)
+ children := f.children(blockRoot)
// If there are children iterate down recursively and see which branches are viable.
if len(children) > 0 {
isAnyViable := false
@@ -156,7 +156,7 @@ func (f *ForkChoiceStore) getFilterBlockTree(blockRoot libcommon.Hash, blocks ma
return false
}
- genesisEpoch := f.forkGraph.Config().GenesisEpoch
+ genesisEpoch := f.beaconCfg.GenesisEpoch
if (f.justifiedCheckpoint.Epoch() == genesisEpoch || currentJustifiedCheckpoint.Equal(f.justifiedCheckpoint)) &&
(f.finalizedCheckpoint.Epoch() == genesisEpoch || finalizedJustifiedCheckpoint.Equal(f.finalizedCheckpoint)) {
blocks[blockRoot] = header
diff --git a/cl/phase1/forkchoice/on_attestation.go b/cl/phase1/forkchoice/on_attestation.go
index f026a81d844..ed4b0ce674c 100644
--- a/cl/phase1/forkchoice/on_attestation.go
+++ b/cl/phase1/forkchoice/on_attestation.go
@@ -139,8 +139,8 @@ func (f *ForkChoiceStore) validateTargetEpochAgainstCurrentTime(attestation *sol
currentEpoch := f.computeEpochAtSlot(f.Slot())
// Use GENESIS_EPOCH for previous when genesis to avoid underflow
previousEpoch := currentEpoch - 1
- if currentEpoch <= f.forkGraph.Config().GenesisEpoch {
- previousEpoch = f.forkGraph.Config().GenesisEpoch
+ if currentEpoch <= f.beaconCfg.GenesisEpoch {
+ previousEpoch = f.beaconCfg.GenesisEpoch
}
if target.Epoch() == currentEpoch || target.Epoch() == previousEpoch {
return nil
diff --git a/cl/phase1/forkchoice/on_attester_slashing.go b/cl/phase1/forkchoice/on_attester_slashing.go
index 4e00fee687c..1c4ea9d5dc3 100644
--- a/cl/phase1/forkchoice/on_attester_slashing.go
+++ b/cl/phase1/forkchoice/on_attester_slashing.go
@@ -25,7 +25,7 @@ func (f *ForkChoiceStore) OnAttesterSlashing(attesterSlashing *cltypes.AttesterS
return fmt.Errorf("attestation data is not slashable")
}
// Retrieve justified state
- s, _, err := f.forkGraph.GetState(f.justifiedCheckpoint.BlockRoot(), false)
+ s, err := f.forkGraph.GetState(f.justifiedCheckpoint.BlockRoot(), false)
if err != nil {
f.mu.Unlock()
return err
diff --git a/cl/phase1/forkchoice/on_block.go b/cl/phase1/forkchoice/on_block.go
index 5bc0593d775..024b323948e 100644
--- a/cl/phase1/forkchoice/on_block.go
+++ b/cl/phase1/forkchoice/on_block.go
@@ -31,7 +31,6 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload,
return nil
}
- config := f.forkGraph.Config()
var invalidBlock bool
if newPayload && f.engine != nil {
if invalidBlock, err = f.engine.NewPayload(block.Block.Body.ExecutionPayload, &block.Block.ParentRoot); err != nil {
@@ -51,6 +50,7 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload,
case fork_graph.PreValidated:
return nil
case fork_graph.Success:
+ f.updateChildren(block.Block.Slot-1, block.Block.ParentRoot, blockRoot) // parent slot can be innacurate
case fork_graph.BelowAnchor:
log.Debug("replay block", "code", status)
return nil
@@ -65,12 +65,12 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload,
f.highestSeen = block.Block.Slot
}
// Add proposer score boost if the block is timely
- timeIntoSlot := (f.time - f.forkGraph.GenesisTime()) % lastProcessedState.BeaconConfig().SecondsPerSlot
- isBeforeAttestingInterval := timeIntoSlot < config.SecondsPerSlot/config.IntervalsPerSlot
+ timeIntoSlot := (f.time - f.genesisTime) % lastProcessedState.BeaconConfig().SecondsPerSlot
+ isBeforeAttestingInterval := timeIntoSlot < f.beaconCfg.SecondsPerSlot/f.beaconCfg.IntervalsPerSlot
if f.Slot() == block.Block.Slot && isBeforeAttestingInterval && f.proposerBoostRoot == (libcommon.Hash{}) {
f.proposerBoostRoot = blockRoot
}
- if lastProcessedState.Slot()%f.forkGraph.Config().SlotsPerEpoch == 0 {
+ if lastProcessedState.Slot()%f.beaconCfg.SlotsPerEpoch == 0 {
if err := freezer.PutObjectSSZIntoFreezer("beaconState", "caplin_core", lastProcessedState.Slot(), lastProcessedState, f.recorder); err != nil {
return err
}
diff --git a/cl/phase1/forkchoice/on_operations.go b/cl/phase1/forkchoice/on_operations.go
index 0b831e1c389..4453a675472 100644
--- a/cl/phase1/forkchoice/on_operations.go
+++ b/cl/phase1/forkchoice/on_operations.go
@@ -29,7 +29,7 @@ func (f *ForkChoiceStore) OnVoluntaryExit(signedVoluntaryExit *cltypes.SignedVol
f.mu.Unlock()
return err
}
- s, _, err := f.forkGraph.GetState(headHash, false)
+ s, err := f.forkGraph.GetState(headHash, false)
if err != nil {
f.mu.Unlock()
return err
@@ -41,7 +41,7 @@ func (f *ForkChoiceStore) OnVoluntaryExit(signedVoluntaryExit *cltypes.SignedVol
return err
}
- if val.ExitEpoch() != f.forkGraph.Config().FarFutureEpoch {
+ if val.ExitEpoch() != f.beaconCfg.FarFutureEpoch {
f.mu.Unlock()
return nil
}
@@ -97,7 +97,7 @@ func (f *ForkChoiceStore) OnProposerSlashing(proposerSlashing *cltypes.ProposerS
f.mu.Unlock()
return err
}
- s, _, err := f.forkGraph.GetState(headHash, false)
+ s, err := f.forkGraph.GetState(headHash, false)
if err != nil {
f.mu.Unlock()
return err
@@ -159,7 +159,6 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS
}
change := signedChange.Message
- beaconConfig := f.forkGraph.Config()
// Take lock as we interact with state.
f.mu.Lock()
@@ -168,7 +167,7 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS
f.mu.Unlock()
return err
}
- s, _, err := f.forkGraph.GetState(headHash, false)
+ s, err := f.forkGraph.GetState(headHash, false)
if err != nil {
f.mu.Unlock()
return err
@@ -180,7 +179,7 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS
}
wc := validator.WithdrawalCredentials()
- if wc[0] != beaconConfig.BLSWithdrawalPrefixByte {
+ if wc[0] != f.beaconCfg.BLSWithdrawalPrefixByte {
f.mu.Unlock()
return fmt.Errorf("invalid withdrawal credentials prefix")
}
@@ -195,7 +194,7 @@ func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLS
}
// Compute the signing domain and verify the message signature.
- domain, err := fork.ComputeDomain(beaconConfig.DomainBLSToExecutionChange[:], utils.Uint32ToBytes4(beaconConfig.GenesisForkVersion), genesisValidatorRoot)
+ domain, err := fork.ComputeDomain(f.beaconCfg.DomainBLSToExecutionChange[:], utils.Uint32ToBytes4(f.beaconCfg.GenesisForkVersion), genesisValidatorRoot)
if err != nil {
return err
}
diff --git a/cl/phase1/forkchoice/on_tick.go b/cl/phase1/forkchoice/on_tick.go
index de096bfc114..6020e979900 100644
--- a/cl/phase1/forkchoice/on_tick.go
+++ b/cl/phase1/forkchoice/on_tick.go
@@ -6,9 +6,9 @@ import libcommon "github.com/ledgerwatch/erigon-lib/common"
func (f *ForkChoiceStore) OnTick(time uint64) {
f.mu.Lock()
defer f.mu.Unlock()
- tickSlot := (time - f.forkGraph.GenesisTime()) / f.forkGraph.Config().SecondsPerSlot
+ tickSlot := (time - f.genesisTime) / f.beaconCfg.SecondsPerSlot
for f.Slot() < tickSlot {
- previousTime := f.forkGraph.GenesisTime() + (f.Slot()+1)*f.forkGraph.Config().SecondsPerSlot
+ previousTime := f.genesisTime + (f.Slot()+1)*f.beaconCfg.SecondsPerSlot
f.onTickPerSlot(previousTime)
}
f.onTickPerSlot(time)
diff --git a/cl/phase1/forkchoice/utils.go b/cl/phase1/forkchoice/utils.go
index 974fdf89234..b3eaca58da7 100644
--- a/cl/phase1/forkchoice/utils.go
+++ b/cl/phase1/forkchoice/utils.go
@@ -13,7 +13,7 @@ import (
// Slot calculates the current slot number using the time and genesis slot.
func (f *ForkChoiceStore) Slot() uint64 {
- return f.forkGraph.Config().GenesisSlot + ((f.time - f.forkGraph.GenesisTime()) / f.forkGraph.Config().SecondsPerSlot)
+ return f.beaconCfg.GenesisSlot + ((f.time - f.genesisTime) / f.beaconCfg.SecondsPerSlot)
}
// updateCheckpoints updates the justified and finalized checkpoints if new checkpoints have higher epochs.
@@ -29,6 +29,7 @@ func (f *ForkChoiceStore) updateCheckpoints(justifiedCheckpoint, finalizedCheckp
}
func (f *ForkChoiceStore) onNewFinalized(newFinalized solid.Checkpoint) {
+ // get rid of checkpoint states
for k := range f.checkpointStates {
checkpoint := solid.Checkpoint(k)
if checkpoint.Epoch() <= newFinalized.Epoch() {
@@ -36,6 +37,14 @@ func (f *ForkChoiceStore) onNewFinalized(newFinalized solid.Checkpoint) {
continue
}
}
+ // get rid of children
+ for k, children := range f.childrens {
+ if children.parentSlot <= newFinalized.Epoch()*f.beaconCfg.SlotsPerEpoch {
+ delete(f.childrens, k)
+ continue
+ }
+ }
+ f.forkGraph.Prune(newFinalized.Epoch() * f.beaconCfg.SlotsPerEpoch)
}
// updateCheckpoints updates the justified and finalized checkpoints if new checkpoints have higher epochs.
@@ -50,12 +59,12 @@ func (f *ForkChoiceStore) updateUnrealizedCheckpoints(justifiedCheckpoint, final
// computeEpochAtSlot calculates the epoch at a given slot number.
func (f *ForkChoiceStore) computeEpochAtSlot(slot uint64) uint64 {
- return slot / f.forkGraph.Config().SlotsPerEpoch
+ return slot / f.beaconCfg.SlotsPerEpoch
}
// computeStartSlotAtEpoch calculates the starting slot of a given epoch.
func (f *ForkChoiceStore) computeStartSlotAtEpoch(epoch uint64) uint64 {
- return epoch * f.forkGraph.Config().SlotsPerEpoch
+ return epoch * f.beaconCfg.SlotsPerEpoch
}
// computeSlotsSinceEpochStart calculates the number of slots since the start of the epoch of a given slot.
@@ -86,7 +95,7 @@ func (f *ForkChoiceStore) getCheckpointState(checkpoint solid.Checkpoint) (*chec
return state, nil
}
// If it is not in cache compute it and then put in cache.
- baseState, _, err := f.forkGraph.GetState(checkpoint.BlockRoot(), true)
+ baseState, err := f.forkGraph.GetState(checkpoint.BlockRoot(), true)
if err != nil {
return nil, err
}
@@ -108,7 +117,7 @@ func (f *ForkChoiceStore) getCheckpointState(checkpoint solid.Checkpoint) (*chec
validators[idx] = v
return true
})
- checkpointState := newCheckpointState(f.forkGraph.Config(), f.anchorPublicKeys, validators,
+ checkpointState := newCheckpointState(f.beaconCfg, f.anchorPublicKeys, validators,
mixes, baseState.GenesisValidatorsRoot(), baseState.Fork(), baseState.GetTotalActiveBalance(), state.Epoch(baseState.BeaconState))
// Cache in memory what we are left with.
f.checkpointStates[checkpointComparable(checkpoint)] = checkpointState
diff --git a/cl/phase1/main.go b/cl/phase1/main.go
index e64c2ccabfa..10f4c7070f6 100644
--- a/cl/phase1/main.go
+++ b/cl/phase1/main.go
@@ -8,22 +8,22 @@ func main() {}
// "fmt"
// "os"
-// "github.com/ledgerwatch/erigon/cl/phase1/core"
-// "github.com/ledgerwatch/erigon/cl/phase1/core/state"
-// "github.com/ledgerwatch/erigon/cl/phase1/execution_client"
-// "github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
-// network2 "github.com/ledgerwatch/erigon/cl/phase1/network"
-// stages2 "github.com/ledgerwatch/erigon/cl/phase1/stages"
-// rawdb2 "github.com/ledgerwatch/erigon/cl/phase4/rawdb"
+// "github.com/ledgerwatch/erigon-lib/cl/phase1/core"
+// "github.com/ledgerwatch/erigon-lib/cl/phase1/core/state"
+// "github.com/ledgerwatch/erigon-lib/cl/phase1/execution_client"
+// "github.com/ledgerwatch/erigon-lib/cl/phase1/forkchoice"
+// network2 "github.com/ledgerwatch/erigon-lib/cl/phase1/network"
+// stages2 "github.com/ledgerwatch/erigon-lib/cl/phase1/stages"
+// rawdb2 "github.com/ledgerwatch/erigon-lib/cl/phase4/rawdb"
// sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
// "github.com/ledgerwatch/erigon-lib/kv"
// "github.com/ledgerwatch/erigon-lib/kv/mdbx"
-// "github.com/ledgerwatch/erigon/cl/clparams"
-// "github.com/ledgerwatch/erigon/cl/clparams/initial_state"
-// "github.com/ledgerwatch/erigon/cl/cltypes"
-// "github.com/ledgerwatch/erigon/cl/fork"
-// "github.com/ledgerwatch/erigon/cl/rpc"
+// "github.com/ledgerwatch/erigon-lib/cl/clparams"
+// "github.com/ledgerwatch/erigon-lib/cl/clparams/initial_state"
+// "github.com/ledgerwatch/erigon-lib/cl/cltypes"
+// "github.com/ledgerwatch/erigon-lib/cl/fork"
+// "github.com/ledgerwatch/erigon-lib/cl/rpc"
// lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli"
// "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags"
diff --git a/cl/phase1/network/backward_beacon_downloader.go b/cl/phase1/network/backward_beacon_downloader.go
index 612406d5f05..2f5abf9b814 100644
--- a/cl/phase1/network/backward_beacon_downloader.go
+++ b/cl/phase1/network/backward_beacon_downloader.go
@@ -2,6 +2,7 @@ package network
import (
"sync"
+ "time"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/log/v3"
@@ -85,9 +86,36 @@ func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) {
if start > b.slotToDownload {
start = 0
}
- responses, _, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, start, count)
- if err != nil {
- return
+
+ reqInterval := time.NewTicker(300 * time.Millisecond)
+ doneRespCh := make(chan []*cltypes.SignedBeaconBlock, 1)
+ var responses []*cltypes.SignedBeaconBlock
+Loop:
+ for {
+ select {
+ case <-reqInterval.C:
+ go func() {
+ responses, peerId, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, start, count)
+ if err != nil {
+ return
+ }
+ if responses == nil {
+ return
+ }
+ if len(responses) == 0 {
+ b.rpc.BanPeer(peerId)
+ return
+ }
+ select {
+ case doneRespCh <- responses:
+ default:
+ }
+ }()
+ case <-ctx.Done():
+ return
+ case responses = <-doneRespCh:
+ break Loop
+ }
}
// Import new blocks, order is forward so reverse the whole packet
for i := len(responses) - 1; i >= 0; i-- {
@@ -103,6 +131,7 @@ func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) {
}
// No? Reject.
if blockRoot != b.expectedRoot {
+ log.Debug("Gotten unexpected root", "got", blockRoot, "expected", b.expectedRoot)
continue
}
// Yes? then go for the callback.
diff --git a/cl/phase1/network/gossip_manager.go b/cl/phase1/network/gossip_manager.go
index 10b61af83d4..abc33f3d6c4 100644
--- a/cl/phase1/network/gossip_manager.go
+++ b/cl/phase1/network/gossip_manager.go
@@ -3,6 +3,7 @@ package network
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common"
"sync"
"github.com/ledgerwatch/erigon/cl/freezer"
@@ -14,7 +15,6 @@ import (
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/log/v3"
)
@@ -154,7 +154,7 @@ func (g *GossipManager) onRecv(ctx context.Context, data *sentinel.GossipData, l
if err := operationsContract[*cltypes.AttesterSlashing](ctx, g, l, data, int(version), "attester slashing", g.forkChoice.OnAttesterSlashing); err != nil {
return err
}
- case sentinel.GossipType_BlsToExecutionChangeType:
+ case sentinel.GossipType_BlsToExecutionChangeGossipType:
if err := operationsContract[*cltypes.SignedBLSToExecutionChange](ctx, g, l, data, int(version), "bls to execution change", g.forkChoice.OnBlsToExecutionChange); err != nil {
return err
}
diff --git a/cl/phase1/stages/clstages.go b/cl/phase1/stages/clstages.go
index 05e0514fd54..60b90e99303 100644
--- a/cl/phase1/stages/clstages.go
+++ b/cl/phase1/stages/clstages.go
@@ -2,13 +2,13 @@ package stages
import (
"context"
- "database/sql"
"errors"
"runtime"
"time"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/dbg"
+ "github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/clstages"
"github.com/ledgerwatch/erigon/cl/cltypes"
@@ -36,9 +36,11 @@ type Cfg struct {
gossipManager *network2.GossipManager
forkChoice *forkchoice.ForkChoiceStore
beaconDB persistence.BeaconChainDatabase
- indiciesDB *sql.DB
+ indiciesDB kv.RwDB
tmpdir string
dbConfig db_config.DatabaseConfiguration
+
+ hasDownloaded bool
}
type Args struct {
@@ -46,6 +48,8 @@ type Args struct {
targetEpoch, seenEpoch uint64
targetSlot, seenSlot uint64
+
+ hasDownloaded bool
}
func ClStagesCfg(
@@ -57,7 +61,7 @@ func ClStagesCfg(
gossipManager *network2.GossipManager,
forkChoice *forkchoice.ForkChoiceStore,
beaconDB persistence.BeaconChainDatabase,
- indiciesDB *sql.DB,
+ indiciesDB kv.RwDB,
tmpdir string,
dbConfig db_config.DatabaseConfiguration,
) *Cfg {
@@ -93,11 +97,11 @@ const (
minPeersForDownload = uint64(4)
)
-func MetaCatchingUp(args Args, hasDownloaded bool) StageName {
+func MetaCatchingUp(args Args) StageName {
if args.peers < minPeersForDownload {
return WaitForPeers
}
- if !hasDownloaded {
+ if !args.hasDownloaded {
return DownloadHistoricalBlocks
}
if args.seenEpoch < args.targetEpoch {
@@ -162,21 +166,19 @@ func ConsensusClStages(ctx context.Context,
) *clstages.StageGraph[*Cfg, Args] {
rpcSource := persistence.NewBeaconRpcSource(cfg.rpc)
gossipSource := persistence.NewGossipSource(ctx, cfg.gossipManager)
- processBlock := func(tx *sql.Tx, block *peers.PeeredObject[*cltypes.SignedBeaconBlock], newPayload, fullValidation bool) error {
- if err := cfg.forkChoice.OnBlock(block.Data, newPayload, fullValidation); err != nil {
- log.Warn("fail to process block", "reason", err, "slot", block.Data.Block.Slot)
- cfg.rpc.BanPeer(block.Peer)
+ processBlock := func(tx kv.RwTx, block *cltypes.SignedBeaconBlock, newPayload, fullValidation bool) error {
+ if err := cfg.forkChoice.OnBlock(block, newPayload, fullValidation); err != nil {
+ log.Warn("fail to process block", "reason", err, "slot", block.Block.Slot)
return err
}
// Write block to database optimistically if we are very behind.
- return cfg.beaconDB.WriteBlock(tx, ctx, block.Data, false)
+ return cfg.beaconDB.WriteBlock(ctx, tx, block, false)
}
// TODO: this is an ugly hack, but it works! Basically, we want shared state in the clstages.
// Probably the correct long term solution is to create a third generic parameter that defines shared state
// but for now, all it would have are the two gossip sources and the forkChoicesSinceReorg, so i don't think its worth it (yet).
shouldForkChoiceSinceReorg := false
- downloaded := false
// clstages run in a single thread - so we don't need to worry about any synchronization.
return &clstages.StageGraph[*Cfg, Args]{
@@ -188,6 +190,7 @@ func ConsensusClStages(ctx context.Context,
log.Error("failed to get sentinel peer count", "err", err)
args.peers = 0
}
+ args.hasDownloaded = cfg.hasDownloaded
args.seenSlot = cfg.forkChoice.HighestSeen()
args.seenEpoch = args.seenSlot / cfg.beaconCfg.SlotsPerEpoch
args.targetSlot = utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot)
@@ -199,7 +202,7 @@ func ConsensusClStages(ctx context.Context,
WaitForPeers: {
Description: `wait for enough peers. This is also a safe stage to go to when unsure of what stage to use`,
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
- if x := MetaCatchingUp(args, downloaded); x != "" {
+ if x := MetaCatchingUp(args); x != "" {
return x
}
return CatchUpBlocks
@@ -232,13 +235,13 @@ func ConsensusClStages(ctx context.Context,
DownloadHistoricalBlocks: {
Description: "Download historical blocks",
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
- if x := MetaCatchingUp(args, downloaded); x != "" {
+ if x := MetaCatchingUp(args); x != "" {
return x
}
return CatchUpBlocks
},
ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error {
- downloaded = true
+ cfg.hasDownloaded = true
startingRoot, err := cfg.state.BlockRoot()
if err != nil {
return err
@@ -247,7 +250,7 @@ func ConsensusClStages(ctx context.Context,
downloader := network2.NewBackwardBeaconDownloader(ctx, cfg.rpc)
if err := SpawnStageHistoryDownload(StageHistoryReconstruction(downloader, cfg.beaconDB, cfg.indiciesDB, cfg.executionClient, cfg.genesisCfg, cfg.beaconCfg, cfg.dbConfig, startingRoot, startingSlot, cfg.tmpdir, logger), ctx, logger); err != nil {
- downloaded = false
+ cfg.hasDownloaded = false
return err
}
return nil
@@ -256,7 +259,7 @@ func ConsensusClStages(ctx context.Context,
CatchUpEpochs: {
Description: `if we are 1 or more epochs behind, we download in parallel by epoch`,
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
- if x := MetaCatchingUp(args, downloaded); x != "" {
+ if x := MetaCatchingUp(args); x != "" {
return x
}
return CatchUpBlocks
@@ -266,7 +269,7 @@ func ConsensusClStages(ctx context.Context,
currentEpoch := args.seenEpoch
blockBatch := []*types.Block{}
shouldInsert := cfg.executionClient != nil && cfg.executionClient.SupportInsertion()
- tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{})
+ tx, err := cfg.indiciesDB.BeginRw(ctx)
if err != nil {
return err
}
@@ -274,25 +277,33 @@ func ConsensusClStages(ctx context.Context,
MainLoop:
for currentEpoch <= args.targetEpoch+1 {
startBlock := currentEpoch * cfg.beaconCfg.SlotsPerEpoch
- blocks, err := rpcSource.GetRange(tx, ctx, startBlock, cfg.beaconCfg.SlotsPerEpoch)
+ blocks, err := rpcSource.GetRange(ctx, tx, startBlock, cfg.beaconCfg.SlotsPerEpoch)
if err != nil {
return err
}
+ // If we got an empty packet ban the peer
+ if len(blocks.Data) == 0 {
+ cfg.rpc.BanPeer(blocks.Peer)
+ continue MainLoop
+ }
logger.Info("[Caplin] Epoch downloaded", "epoch", currentEpoch)
- for _, block := range blocks {
- if shouldInsert && block.Data.Version() >= clparams.BellatrixVersion {
- executionPayload := block.Data.Block.Body.ExecutionPayload
+ for _, block := range blocks.Data {
+
+ if shouldInsert && block.Version() >= clparams.BellatrixVersion {
+ executionPayload := block.Block.Body.ExecutionPayload
body := executionPayload.Body()
txs, err := types.DecodeTransactions(body.Transactions)
if err != nil {
log.Warn("bad blocks segment received", "err", err)
+ cfg.rpc.BanPeer(blocks.Peer)
currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1)
continue MainLoop
}
header, err := executionPayload.RlpHeader()
if err != nil {
log.Warn("bad blocks segment received", "err", err)
+ cfg.rpc.BanPeer(blocks.Peer)
currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1)
continue MainLoop
}
@@ -300,6 +311,7 @@ func ConsensusClStages(ctx context.Context,
}
if err := processBlock(tx, block, false, true); err != nil {
log.Warn("bad blocks segment received", "err", err)
+ cfg.rpc.BanPeer(blocks.Peer)
currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1)
continue MainLoop
}
@@ -321,7 +333,7 @@ func ConsensusClStages(ctx context.Context,
CatchUpBlocks: {
Description: `if we are within the epoch but not at head, we run catchupblocks`,
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
- if x := MetaCatchingUp(args, downloaded); x != "" {
+ if x := MetaCatchingUp(args); x != "" {
return x
}
return ForkChoice
@@ -333,14 +345,19 @@ func ConsensusClStages(ctx context.Context,
"targetSlot", args.targetSlot,
"requestedSlots", totalRequest,
)
- respCh := make(chan []*peers.PeeredObject[*cltypes.SignedBeaconBlock])
+ respCh := make(chan *peers.PeeredObject[[]*cltypes.SignedBeaconBlock])
errCh := make(chan error)
- sources := []persistence.BlockSource{gossipSource, rpcSource}
+ sources := []persistence.BlockSource{gossipSource}
+
+ // if we are more than one block behind, we request the rpc source as well
+ if totalRequest > 2 {
+ sources = append(sources, rpcSource)
+ }
// the timeout is equal to the amount of blocks to fetch multiplied by the seconds per slot
ctx, cn := context.WithTimeout(ctx, time.Duration(cfg.beaconCfg.SecondsPerSlot*totalRequest)*time.Second)
defer cn()
- tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{})
+ tx, err := cfg.indiciesDB.BeginRw(ctx)
if err != nil {
return err
}
@@ -349,7 +366,7 @@ func ConsensusClStages(ctx context.Context,
for _, v := range sources {
sourceFunc := v.GetRange
go func() {
- blocks, err := sourceFunc(tx, ctx, args.seenSlot+1, totalRequest)
+ blocks, err := sourceFunc(ctx, tx, args.seenSlot+1, totalRequest)
if err != nil {
errCh <- err
return
@@ -363,7 +380,7 @@ func ConsensusClStages(ctx context.Context,
case err := <-errCh:
return err
case blocks := <-respCh:
- for _, block := range blocks {
+ for _, block := range blocks.Data {
if err := processBlock(tx, block, true, true); err != nil {
return err
}
@@ -378,7 +395,7 @@ func ConsensusClStages(ctx context.Context,
Description: `fork choice stage. We will send all fork choise things here
also, we will wait up to delay seconds to deal with attestations + side forks`,
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
- if x := MetaCatchingUp(args, downloaded); x != "" {
+ if x := MetaCatchingUp(args); x != "" {
return x
}
return ListenForForks
@@ -415,7 +432,7 @@ func ConsensusClStages(ctx context.Context,
return err
}
}
- tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{})
+ tx, err := cfg.indiciesDB.BeginRw(ctx)
if err != nil {
return err
}
@@ -427,7 +444,7 @@ func ConsensusClStages(ctx context.Context,
currentRoot := headRoot
currentSlot := headSlot
- currentCanonical, err := beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, currentSlot)
+ currentCanonical, err := beacon_indicies.ReadCanonicalBlockRoot(tx, currentSlot)
if err != nil {
return err
}
@@ -439,14 +456,14 @@ func ConsensusClStages(ctx context.Context,
if currentRoot, err = beacon_indicies.ReadParentBlockRoot(ctx, tx, currentRoot); err != nil {
return err
}
- if newFoundSlot, err = beacon_indicies.ReadBlockSlotByBlockRoot(ctx, tx, currentRoot); err != nil {
+ if newFoundSlot, err = beacon_indicies.ReadBlockSlotByBlockRoot(tx, currentRoot); err != nil {
return err
}
if newFoundSlot == nil {
break
}
currentSlot = *newFoundSlot
- currentCanonical, err = beacon_indicies.ReadCanonicalBlockRoot(ctx, tx, currentSlot)
+ currentCanonical, err = beacon_indicies.ReadCanonicalBlockRoot(tx, currentSlot)
if err != nil {
return err
}
@@ -466,7 +483,7 @@ func ConsensusClStages(ctx context.Context,
defer func() {
shouldForkChoiceSinceReorg = false
}()
- if x := MetaCatchingUp(args, downloaded); x != "" {
+ if x := MetaCatchingUp(args); x != "" {
return x
}
if shouldForkChoiceSinceReorg {
@@ -482,13 +499,13 @@ func ConsensusClStages(ctx context.Context,
waitDur := slotTime.Sub(time.Now())
ctx, cn := context.WithTimeout(ctx, waitDur)
defer cn()
- tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{})
+ tx, err := cfg.indiciesDB.BeginRw(ctx)
if err != nil {
return err
}
defer tx.Rollback()
// try to get the current block
- blocks, err := gossipSource.GetRange(tx, ctx, args.seenSlot, 1)
+ blocks, err := gossipSource.GetRange(ctx, tx, args.seenSlot, 1)
if err != nil {
if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) {
return nil
@@ -496,7 +513,7 @@ func ConsensusClStages(ctx context.Context,
return err
}
- for _, block := range blocks {
+ for _, block := range blocks.Data {
err := processBlock(tx, block, true, true)
if err != nil {
// its okay if block processing fails
@@ -512,27 +529,26 @@ func ConsensusClStages(ctx context.Context,
CleanupAndPruning: {
Description: `cleanup and pruning is done here`,
TransitionFunc: func(cfg *Cfg, args Args, err error) string {
- if x := MetaCatchingUp(args, downloaded); x != "" {
+ if x := MetaCatchingUp(args); x != "" {
return x
}
return SleepForSlot
},
ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error {
- tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{})
+ tx, err := cfg.indiciesDB.BeginRw(ctx)
if err != nil {
return err
}
defer tx.Rollback()
// clean up some old ranges
- err = gossipSource.PurgeRange(tx, ctx, 1, args.seenSlot-cfg.beaconCfg.SlotsPerEpoch*16)
+ err = gossipSource.PurgeRange(ctx, tx, 1, args.seenSlot-cfg.beaconCfg.SlotsPerEpoch*16)
if err != nil {
return err
}
- err = cfg.beaconDB.PurgeRange(tx, ctx, 1, cfg.forkChoice.HighestSeen()-cfg.dbConfig.PruneDepth)
+ err = cfg.beaconDB.PurgeRange(ctx, tx, 1, cfg.forkChoice.HighestSeen()-cfg.dbConfig.PruneDepth)
if err != nil {
return err
}
- //TODO: probably can clear old superepoch in fs here as well!
return tx.Commit()
},
},
diff --git a/cl/phase1/stages/stage_history_download.go b/cl/phase1/stages/stage_history_download.go
index 36bad848a95..f8cc5c99c3a 100644
--- a/cl/phase1/stages/stage_history_download.go
+++ b/cl/phase1/stages/stage_history_download.go
@@ -2,11 +2,12 @@ package stages
import (
"context"
- "database/sql"
"fmt"
"sync/atomic"
"time"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
+
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/etl"
"github.com/ledgerwatch/erigon-lib/kv"
@@ -16,7 +17,6 @@ import (
"github.com/ledgerwatch/erigon/cl/phase1/execution_client"
"github.com/ledgerwatch/erigon/cl/phase1/network"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/cl/clparams"
@@ -33,14 +33,14 @@ type StageHistoryReconstructionCfg struct {
startingSlot uint64
tmpdir string
db persistence.BeaconChainDatabase
- indiciesDB *sql.DB
+ indiciesDB kv.RwDB
engine execution_client.ExecutionEngine
logger log.Logger
}
const logIntervalTime = 30 * time.Second
-func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, db persistence.BeaconChainDatabase, indiciesDB *sql.DB, engine execution_client.ExecutionEngine, genesisCfg *clparams.GenesisConfig, beaconCfg *clparams.BeaconChainConfig, dbCfg db_config.DatabaseConfiguration, startingRoot libcommon.Hash, startinSlot uint64, tmpdir string, logger log.Logger) StageHistoryReconstructionCfg {
+func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, db persistence.BeaconChainDatabase, indiciesDB kv.RwDB, engine execution_client.ExecutionEngine, genesisCfg *clparams.GenesisConfig, beaconCfg *clparams.BeaconChainConfig, dbCfg db_config.DatabaseConfiguration, startingRoot libcommon.Hash, startinSlot uint64, tmpdir string, logger log.Logger) StageHistoryReconstructionCfg {
return StageHistoryReconstructionCfg{
genesisCfg: genesisCfg,
beaconCfg: beaconCfg,
@@ -56,33 +56,12 @@ func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, db
}
}
-func waitForExecutionEngineToBeReady(ctx context.Context, engine execution_client.ExecutionEngine) error {
- if engine == nil {
- return nil
- }
- checkInterval := time.NewTicker(200 * time.Millisecond)
- for {
- select {
- case <-checkInterval.C:
- ready, err := engine.Ready()
- if err != nil {
- return err
- }
- if ready {
- return nil
- }
- case <-ctx.Done():
- return ctx.Err()
- }
- }
-}
-
// SpawnStageBeaconsForward spawn the beacon forward stage
func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Context, logger log.Logger) error {
// Wait for execution engine to be ready.
- if err := waitForExecutionEngineToBeReady(ctx, cfg.engine); err != nil {
- return err
- }
+ // if err := waitForExecutionEngineToBeReady(ctx, cfg.engine); err != nil {
+ // return err
+ // }
blockRoot := cfg.startingRoot
destinationSlot := uint64(0)
currentSlot := cfg.startingSlot
@@ -90,31 +69,42 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
destinationSlot = currentSlot - cfg.dbCfg.PruneDepth
}
- executionBlocksCollector := etl.NewCollector("SpawnStageHistoryDownload", cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger)
+ executionBlocksCollector := etl.NewCollector("HistoryDownload", cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger)
defer executionBlocksCollector.Close()
// Start the procedure
- logger.Info("Downloading History", "from", currentSlot)
+ logger.Info("Starting downloading History", "from", currentSlot)
// Setup slot and block root
cfg.downloader.SetSlotToDownload(currentSlot)
cfg.downloader.SetExpectedRoot(blockRoot)
- foundLatestEth1ValidHash := false
+ foundLatestEth1ValidBlock := false
if cfg.engine == nil || !cfg.engine.SupportInsertion() {
- foundLatestEth1ValidHash = true // skip this if we are not using an engine supporting direct insertion
+ foundLatestEth1ValidBlock = true // skip this if we are not using an engine supporting direct insertion
}
var currEth1Progress atomic.Int64
- tx, err := cfg.indiciesDB.BeginTx(ctx, &sql.TxOptions{})
+ tx, err := cfg.indiciesDB.BeginRw(ctx)
if err != nil {
return err
}
defer tx.Rollback()
+
+ bytesReadIn15Seconds := atomic.Uint64{}
// Set up onNewBlock callback
cfg.downloader.SetOnNewBlock(func(blk *cltypes.SignedBeaconBlock) (finished bool, err error) {
if blk.Version() >= clparams.BellatrixVersion {
currEth1Progress.Store(int64(blk.Block.Body.ExecutionPayload.BlockNumber))
}
- if !foundLatestEth1ValidHash {
+
+ bytesReadIn15Seconds.Add(uint64(blk.EncodingSizeSSZ()))
+
+ slot := blk.Block.Slot
+ if destinationSlot <= blk.Block.Slot {
+ if err := cfg.db.WriteBlock(ctx, tx, blk, true); err != nil {
+ return false, err
+ }
+ }
+ if !foundLatestEth1ValidBlock {
payload := blk.Block.Body.ExecutionPayload
encodedPayload, err := payload.EncodeSSZ(nil)
if err != nil {
@@ -125,34 +115,52 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
if err := executionBlocksCollector.Collect(dbutils.BlockBodyKey(payload.BlockNumber, payload.BlockHash), encodedPayload); err != nil {
return false, fmt.Errorf("error collecting execution payload during download: %s", err)
}
+ if currEth1Progress.Load()%100 == 0 {
+ return false, nil
+ }
bodyChainHeader, err := cfg.engine.GetBodiesByHashes([]libcommon.Hash{payload.BlockHash})
if err != nil {
return false, fmt.Errorf("error retrieving whether execution payload is present: %s", err)
}
- foundLatestEth1ValidHash = len(bodyChainHeader) > 0
- }
-
- slot := blk.Block.Slot
- if destinationSlot <= blk.Block.Slot {
- if err := cfg.db.WriteBlock(tx, ctx, blk, true); err != nil {
- return false, err
- }
+ foundLatestEth1ValidBlock = len(bodyChainHeader) > 0 || cfg.engine.FrozenBlocks() > payload.BlockNumber
}
- return slot <= destinationSlot && foundLatestEth1ValidHash, nil
+ return slot <= destinationSlot && foundLatestEth1ValidBlock, nil
})
prevProgress := cfg.downloader.Progress()
logInterval := time.NewTicker(logIntervalTime)
finishCh := make(chan struct{})
// Start logging thread
+
+ go func() {
+ t := time.NewTicker(15 * time.Second)
+ for {
+ select {
+ case <-t.C:
+ bytesReadIn15Seconds.Store(0)
+ case <-ctx.Done():
+ return
+ }
+ }
+ }()
go func() {
for {
select {
case <-logInterval.C:
+ if cfg.engine != nil && cfg.engine.SupportInsertion() {
+ if ready, err := cfg.engine.Ready(); !ready {
+ if err != nil {
+ log.Warn("could not log progress", "err", err)
+ }
+ continue
+ }
+
+ }
logArgs := []interface{}{}
currProgress := cfg.downloader.Progress()
- speed := float64(prevProgress-currProgress) / float64(logIntervalTime/time.Second)
+ blockProgress := float64(prevProgress - currProgress)
+ speed := blockProgress / float64(logIntervalTime/time.Second)
prevProgress = currProgress
peerCount, err := cfg.downloader.Peers()
if err != nil {
@@ -162,6 +170,7 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
"slot", currProgress,
"blockNumber", currEth1Progress.Load(),
"blk/sec", fmt.Sprintf("%.1f", speed),
+ "mbps/sec", fmt.Sprintf("%.4f", float64(bytesReadIn15Seconds.Load())/(1000*1000*15)),
"peers", peerCount)
logger.Info("Downloading History", logArgs...)
case <-finishCh:
@@ -187,6 +196,8 @@ func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Co
blockBatch := []*types.Block{}
blockBatchMaxSize := 1000
+ cfg.logger.Info("Ready to insert history, waiting for sync cycle to finish")
+
if err := executionBlocksCollector.Load(tx2, kv.Headers, func(k, vComp []byte, _ etl.CurrentTableReader, next etl.LoadNextFunc) error {
if cfg.engine == nil || !cfg.engine.SupportInsertion() {
return next(k, nil, nil)
diff --git a/cl/pool/operations_pool.go b/cl/pool/operations_pool.go
index 17c316a4630..949e6fda237 100644
--- a/cl/pool/operations_pool.go
+++ b/cl/pool/operations_pool.go
@@ -2,10 +2,10 @@ package pool
import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/crypto/blake2b"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
- "github.com/ledgerwatch/erigon/crypto/blake2b"
)
// DoubleSignatureKey uses blake2b algorithm to merge two signatures together. blake2 is faster than sha3.
diff --git a/cl/readme.md b/cl/readme.md
new file mode 100644
index 00000000000..e62ff8ef5c7
--- /dev/null
+++ b/cl/readme.md
@@ -0,0 +1,3 @@
+# cl
+
+all code under this directory and subdirectories falls under apache 2.0 license, seen in ./LICENSE
diff --git a/cl/rpc/rpc.go b/cl/rpc/rpc.go
index c9ca3436598..c71501dbb1e 100644
--- a/cl/rpc/rpc.go
+++ b/cl/rpc/rpc.go
@@ -8,6 +8,9 @@ import (
"io"
"time"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy"
+
"github.com/c2h5oh/datasize"
"github.com/golang/snappy"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -21,9 +24,6 @@ import (
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/fork"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy"
- "github.com/ledgerwatch/erigon/common"
)
const maxMessageLength = 18 * datasize.MB
@@ -67,7 +67,7 @@ func (b *BeaconRpcP2P) sendBlocksRequest(ctx context.Context, topic string, reqD
if message.Error {
rd := snappy.NewReader(bytes.NewBuffer(message.Data))
errBytes, _ := io.ReadAll(rd)
- log.Debug("received range req error", "err", string(errBytes))
+ log.Trace("received range req error", "err", string(errBytes), "raw", string(message.Data))
return nil, message.Peer.Pid, nil
}
@@ -137,7 +137,7 @@ func (b *BeaconRpcP2P) SendBeaconBlocksByRangeReq(ctx context.Context, start, co
return nil, "", err
}
- data := common.CopyBytes(buffer.Bytes())
+ data := libcommon.CopyBytes(buffer.Bytes())
return b.sendBlocksRequest(ctx, communication.BeaconBlocksByRangeProtocolV2, data, count)
}
@@ -151,7 +151,7 @@ func (b *BeaconRpcP2P) SendBeaconBlocksByRootReq(ctx context.Context, roots [][3
if err := ssz_snappy.EncodeAndWrite(&buffer, req); err != nil {
return nil, "", err
}
- data := common.CopyBytes(buffer.Bytes())
+ data := libcommon.CopyBytes(buffer.Bytes())
return b.sendBlocksRequest(ctx, communication.BeaconBlocksByRootProtocolV2, data, uint64(len(roots)))
}
diff --git a/cmd/sentinel/sentinel/communication/ssz_snappy/encoding.go b/cl/sentinel/communication/ssz_snappy/encoding.go
similarity index 100%
rename from cmd/sentinel/sentinel/communication/ssz_snappy/encoding.go
rename to cl/sentinel/communication/ssz_snappy/encoding.go
diff --git a/cmd/sentinel/sentinel/communication/topics.go b/cl/sentinel/communication/topics.go
similarity index 100%
rename from cmd/sentinel/sentinel/communication/topics.go
rename to cl/sentinel/communication/topics.go
diff --git a/cmd/sentinel/sentinel/config.go b/cl/sentinel/config.go
similarity index 100%
rename from cmd/sentinel/sentinel/config.go
rename to cl/sentinel/config.go
diff --git a/cmd/sentinel/sentinel/config_test.go b/cl/sentinel/config_test.go
similarity index 100%
rename from cmd/sentinel/sentinel/config_test.go
rename to cl/sentinel/config_test.go
diff --git a/cmd/sentinel/sentinel/discovery.go b/cl/sentinel/discovery.go
similarity index 73%
rename from cmd/sentinel/sentinel/discovery.go
rename to cl/sentinel/discovery.go
index 36fe1a6fc61..de596304643 100644
--- a/cmd/sentinel/sentinel/discovery.go
+++ b/cl/sentinel/discovery.go
@@ -1,16 +1,3 @@
-/*
- Copyright 2022 Erigon-Lightclient contributors
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
package sentinel
import (
@@ -20,40 +7,37 @@ import (
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/fork"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers"
"github.com/ledgerwatch/erigon/p2p/enode"
"github.com/ledgerwatch/erigon/p2p/enr"
"github.com/ledgerwatch/log/v3"
"github.com/libp2p/go-libp2p/core/network"
"github.com/libp2p/go-libp2p/core/peer"
"github.com/multiformats/go-multiaddr"
-
"github.com/prysmaticlabs/go-bitfield"
)
-func (s *Sentinel) ConnectWithPeer(ctx context.Context, info peer.AddrInfo, skipHandshake bool) (err error) {
+// ConnectWithPeer is used to attempt to connect and add the peer to our pool
+// it errors when if fail to connect with the peer, for instance, if it fails the handshake
+// if it does not return an error, the peer is attempted to be added to the pool
+func (s *Sentinel) ConnectWithPeer(ctx context.Context, info peer.AddrInfo) (err error) {
if info.ID == s.host.ID() {
return nil
}
- s.peers.WithPeer(info.ID, func(peer *peers.Peer) {
- if peer.IsBad() {
- err = fmt.Errorf("refused to connect to bad peer")
- }
- })
- if err != nil {
- return err
+ if s.peers.BanStatus(info.ID) {
+ return fmt.Errorf("refused to connect to bad peer")
}
ctxWithTimeout, cancel := context.WithTimeout(ctx, clparams.MaxDialTimeout)
defer cancel()
- if err := s.host.Connect(ctxWithTimeout, info); err != nil {
- s.peers.WithPeer(info.ID, func(peer *peers.Peer) {
- peer.Disconnect(err.Error())
- })
+ err = s.host.Connect(ctxWithTimeout, info)
+ if err != nil {
return err
}
return nil
}
+// connectWithAllPeers is a helper function used to connect with a list of addrs.
+// it only returns an error on fail to parse multiaddrs
+// will print connect with peer errors to trace debug level
func (s *Sentinel) connectWithAllPeers(multiAddrs []multiaddr.Multiaddr) error {
addrInfos, err := peer.AddrInfosFromP2pAddrs(multiAddrs...)
if err != nil {
@@ -61,7 +45,7 @@ func (s *Sentinel) connectWithAllPeers(multiAddrs []multiaddr.Multiaddr) error {
}
for _, peerInfo := range addrInfos {
go func(peerInfo peer.AddrInfo) {
- if err := s.ConnectWithPeer(s.ctx, peerInfo, true); err != nil {
+ if err := s.ConnectWithPeer(s.ctx, peerInfo); err != nil {
log.Trace("[Sentinel] Could not connect with peer", "err", err)
}
}(peerInfo)
@@ -87,7 +71,6 @@ func (s *Sentinel) listenForPeers() {
multiAddresses := convertToMultiAddr(enodes)
if err := s.connectWithAllPeers(multiAddresses); err != nil {
log.Warn("Could not connect to static peers", "reason", err)
-
}
iterator := s.listener.RandomNodes()
@@ -124,7 +107,7 @@ func (s *Sentinel) listenForPeers() {
}
go func(peerInfo *peer.AddrInfo) {
- if err := s.ConnectWithPeer(s.ctx, *peerInfo, false); err != nil {
+ if err := s.ConnectWithPeer(s.ctx, *peerInfo); err != nil {
log.Trace("[Sentinel] Could not connect with peer", "err", err)
}
}(peerInfo)
@@ -161,12 +144,19 @@ func (s *Sentinel) setupENR(
func (s *Sentinel) onConnection(net network.Network, conn network.Conn) {
go func() {
peerId := conn.RemotePeer()
- invalid := !s.handshaker.ValidatePeer(peerId)
- if invalid {
+ valid, err := s.handshaker.ValidatePeer(peerId)
+ if err != nil {
+ log.Trace("[sentinel] failed to validate peer:", "err", err)
+ }
+ if !valid {
log.Trace("Handshake was unsuccessful")
- s.peers.WithPeer(peerId, func(peer *peers.Peer) {
- peer.Disconnect("invalid peer", "bad handshake")
- })
+ // on handshake fail, we disconnect with said peer, and remove them from our pool
+ s.host.Peerstore().RemovePeer(peerId)
+ s.host.Network().ClosePeer(peerId)
+ s.peers.RemovePeer(peerId)
+ } else {
+ // we were able to succesfully connect, so add this peer to our pool
+ s.peers.AddPeer(peerId)
}
}()
}
diff --git a/cmd/sentinel/sentinel/gater.go b/cl/sentinel/gater.go
similarity index 100%
rename from cmd/sentinel/sentinel/gater.go
rename to cl/sentinel/gater.go
diff --git a/cmd/sentinel/sentinel/pubsub.go b/cl/sentinel/gossip.go
similarity index 67%
rename from cmd/sentinel/sentinel/pubsub.go
rename to cl/sentinel/gossip.go
index f733a4828ca..38af103b890 100644
--- a/cmd/sentinel/sentinel/pubsub.go
+++ b/cl/sentinel/gossip.go
@@ -1,20 +1,19 @@
-/*
- Copyright 2022 Erigon-Lightclient contributors
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
+// Copyright 2022 Erigon-Caplin contributors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
package sentinel
import (
"context"
+ "errors"
"fmt"
"strings"
"sync"
@@ -23,6 +22,7 @@ import (
"github.com/ledgerwatch/erigon/cl/fork"
"github.com/ledgerwatch/log/v3"
pubsub "github.com/libp2p/go-libp2p-pubsub"
+ "github.com/libp2p/go-libp2p/core/peer"
)
var (
@@ -181,21 +181,21 @@ func (s *Sentinel) topicScoreParams(topic string) *pubsub.TopicScoreParams {
case strings.Contains(topic, string(BeaconBlockTopic)):
return s.defaultBlockTopicParams()
/*case strings.Contains(topic, GossipAggregateAndProofMessage):
- return defaultAggregateTopicParams(activeValidators), nil
+ return defaultAggregateTopicParams(activeValidators), nil
case strings.Contains(topic, GossipAttestationMessage):
- return defaultAggregateSubnetTopicParams(activeValidators), nil
+ return defaultAggregateSubnetTopicParams(activeValidators), nil
case strings.Contains(topic, GossipSyncCommitteeMessage):
- return defaultSyncSubnetTopicParams(activeValidators), nil
+ return defaultSyncSubnetTopicParams(activeValidators), nil
case strings.Contains(topic, GossipContributionAndProofMessage):
- return defaultSyncContributionTopicParams(), nil
+ return defaultSyncContributionTopicParams(), nil
case strings.Contains(topic, GossipExitMessage):
- return defaultVoluntaryExitTopicParams(), nil
+ return defaultVoluntaryExitTopicParams(), nil
case strings.Contains(topic, GossipProposerSlashingMessage):
- return defaultProposerSlashingTopicParams(), nil
+ return defaultProposerSlashingTopicParams(), nil
case strings.Contains(topic, GossipAttesterSlashingMessage):
- return defaultAttesterSlashingTopicParams(), nil
+ return defaultAttesterSlashingTopicParams(), nil
case strings.Contains(topic, GossipBlsToExecutionChangeMessage):
- return defaultBlsToExecutionChangeTopicParams(), nil*/
+ return defaultBlsToExecutionChangeTopicParams(), nil*/
default:
return nil
}
@@ -234,3 +234,89 @@ func (g *GossipManager) Close() {
}
}
}
+
+// GossipSubscription abstracts a gossip subscription to write decoded structs.
+type GossipSubscription struct {
+ gossip_topic GossipTopic
+ host peer.ID
+ ch chan *pubsub.Message
+ ctx context.Context
+
+ topic *pubsub.Topic
+ sub *pubsub.Subscription
+
+ cf context.CancelFunc
+ rf pubsub.RelayCancelFunc
+
+ setup sync.Once
+ stopCh chan struct{}
+}
+
+func (sub *GossipSubscription) Listen() (err error) {
+ sub.setup.Do(func() {
+ sub.stopCh = make(chan struct{}, 3)
+ sub.sub, err = sub.topic.Subscribe()
+ if err != nil {
+ err = fmt.Errorf("failed to begin topic %s subscription, err=%w", sub.topic.String(), err)
+ return
+ }
+ var sctx context.Context
+ sctx, sub.cf = context.WithCancel(sub.ctx)
+ go sub.run(sctx, sub.sub, sub.sub.Topic())
+ })
+ return nil
+}
+
+// calls the cancel func for the subscriber and closes the topic and sub
+func (s *GossipSubscription) Close() {
+ s.stopCh <- struct{}{}
+ if s.cf != nil {
+ s.cf()
+ }
+ if s.rf != nil {
+ s.rf()
+ }
+ if s.sub != nil {
+ s.sub.Cancel()
+ s.sub = nil
+ }
+ if s.topic != nil {
+ s.topic.Close()
+ s.topic = nil
+ }
+}
+
+// this is a helper to begin running the gossip subscription.
+// function should not be used outside of the constructor for gossip subscription
+func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topic string) {
+ defer func() {
+ if r := recover(); r != nil {
+ log.Error("[Sentinel Gossip] Message Handler Crashed", "err", r)
+ }
+ }()
+ for {
+ select {
+ case <-ctx.Done():
+ return
+ case <-s.stopCh:
+ return
+ default:
+ msg, err := sub.Next(ctx)
+ if err != nil {
+ if errors.Is(err, context.Canceled) {
+ return
+ }
+ log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topic", topic)
+ return
+ }
+ if msg.GetFrom() == s.host {
+ continue
+ }
+ s.ch <- msg
+ }
+ }
+}
+
+func (g *GossipSubscription) Publish(data []byte) error {
+ return g.topic.Publish(g.ctx, data)
+}
diff --git a/cmd/sentinel/sentinel/handlers/blocks.go b/cl/sentinel/handlers/blocks.go
similarity index 95%
rename from cmd/sentinel/sentinel/handlers/blocks.go
rename to cl/sentinel/handlers/blocks.go
index 5426d619113..21f4aca2a33 100644
--- a/cmd/sentinel/sentinel/handlers/blocks.go
+++ b/cl/sentinel/handlers/blocks.go
@@ -14,7 +14,7 @@
package handlers
import (
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy"
"github.com/ledgerwatch/log/v3"
"github.com/libp2p/go-libp2p/core/network"
)
diff --git a/cmd/sentinel/sentinel/handlers/handlers.go b/cl/sentinel/handlers/handlers.go
similarity index 90%
rename from cmd/sentinel/sentinel/handlers/handlers.go
rename to cl/sentinel/handlers/handlers.go
index 062f206d598..b5e2f3b4ac2 100644
--- a/cmd/sentinel/sentinel/handlers/handlers.go
+++ b/cl/sentinel/handlers/handlers.go
@@ -17,11 +17,12 @@ import (
"context"
"strings"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication"
+ "github.com/ledgerwatch/erigon/cl/sentinel/peers"
+
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/persistence"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers"
"github.com/ledgerwatch/log/v3"
"github.com/libp2p/go-libp2p/core/host"
"github.com/libp2p/go-libp2p/core/network"
@@ -31,7 +32,6 @@ import (
type ConsensusHandlers struct {
handlers map[protocol.ID]network.StreamHandler
host host.Host
- peers *peers.Manager
metadata *cltypes.Metadata
beaconConfig *clparams.BeaconChainConfig
genesisConfig *clparams.GenesisConfig
@@ -46,9 +46,8 @@ const (
)
func NewConsensusHandlers(ctx context.Context, db persistence.RawBeaconBlockChain, host host.Host,
- peers *peers.Manager, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, metadata *cltypes.Metadata) *ConsensusHandlers {
+ peers *peers.Pool, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, metadata *cltypes.Metadata) *ConsensusHandlers {
c := &ConsensusHandlers{
- peers: peers,
host: host,
metadata: metadata,
beaconDB: db,
diff --git a/cmd/sentinel/sentinel/handlers/heartbeats.go b/cl/sentinel/handlers/heartbeats.go
similarity index 96%
rename from cmd/sentinel/sentinel/handlers/heartbeats.go
rename to cl/sentinel/handlers/heartbeats.go
index f42b345c0c9..8956a4b547a 100644
--- a/cmd/sentinel/sentinel/handlers/heartbeats.go
+++ b/cl/sentinel/handlers/heartbeats.go
@@ -16,7 +16,7 @@ package handlers
import (
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy"
"github.com/libp2p/go-libp2p/core/network"
)
diff --git a/cmd/sentinel/sentinel/handshake/handshake.go b/cl/sentinel/handshake/handshake.go
similarity index 56%
rename from cmd/sentinel/sentinel/handshake/handshake.go
rename to cl/sentinel/handshake/handshake.go
index e755e62a676..f5b6baadf07 100644
--- a/cmd/sentinel/sentinel/handshake/handshake.go
+++ b/cl/sentinel/handshake/handshake.go
@@ -3,17 +3,19 @@ package handshake
import (
"bytes"
"context"
+ "fmt"
+ "io"
+ "net/http"
"sync"
+ communication2 "github.com/ledgerwatch/erigon/cl/sentinel/communication"
+ "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy"
+ "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp"
+
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/fork"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy"
- "github.com/ledgerwatch/erigon/common"
- "github.com/libp2p/go-libp2p/core/host"
"github.com/libp2p/go-libp2p/core/peer"
- "go.uber.org/zap/buffer"
)
// HandShaker is the data type which will handle handshakes and determine if
@@ -23,17 +25,17 @@ type HandShaker struct {
// Status object to send over.
status *cltypes.Status // Contains status object for handshakes
set bool
- host host.Host
+ handler http.Handler
genesisConfig *clparams.GenesisConfig
beaconConfig *clparams.BeaconChainConfig
mu sync.Mutex
}
-func New(ctx context.Context, genesisConfig *clparams.GenesisConfig, beaconConfig *clparams.BeaconChainConfig, host host.Host) *HandShaker {
+func New(ctx context.Context, genesisConfig *clparams.GenesisConfig, beaconConfig *clparams.BeaconChainConfig, handler http.Handler) *HandShaker {
return &HandShaker{
ctx: ctx,
- host: host,
+ handler: handler,
genesisConfig: genesisConfig,
beaconConfig: beaconConfig,
status: &cltypes.Status{},
@@ -62,31 +64,41 @@ func (h *HandShaker) IsSet() bool {
return h.set
}
-func (h *HandShaker) ValidatePeer(id peer.ID) bool {
+func (h *HandShaker) ValidatePeer(id peer.ID) (bool, error) {
// Unprotected if it is not set
if !h.IsSet() {
- return true
+ return true, nil
}
status := h.Status()
// Encode our status
- var buffer buffer.Buffer
- if err := ssz_snappy.EncodeAndWrite(&buffer, status); err != nil {
- return false
+ buf := new(bytes.Buffer)
+ if err := ssz_snappy.EncodeAndWrite(buf, status); err != nil {
+ return false, err
}
-
- data := common.CopyBytes(buffer.Bytes())
- response, errResponse, err := communication.SendRequestRawToPeer(h.ctx, h.host, data, communication.StatusProtocolV1, id)
- if err != nil || errResponse > 0 {
- return false
+ req, err := http.NewRequest("GET", "http://service.internal/", buf)
+ if err != nil {
+ return false, err
+ }
+ req.Header.Set("REQRESP-PEER-ID", id.String())
+ req.Header.Set("REQRESP-TOPIC", communication2.StatusProtocolV1)
+ resp, err := httpreqresp.Do(h.handler, req)
+ if err != nil {
+ return false, err
+ }
+ defer resp.Body.Close()
+ if resp.Header.Get("REQRESP-RESPONSE-CODE") != "0" {
+ a, _ := io.ReadAll(resp.Body)
+ //TODO: proper errors
+ return false, fmt.Errorf("handshake error: %s", string(a))
}
responseStatus := &cltypes.Status{}
- if err := ssz_snappy.DecodeAndReadNoForkDigest(bytes.NewReader(response), responseStatus, clparams.Phase0Version); err != nil {
- return false
+ if err := ssz_snappy.DecodeAndReadNoForkDigest(resp.Body, responseStatus, clparams.Phase0Version); err != nil {
+ return false, nil
}
forkDigest, err := fork.ComputeForkDigest(h.beaconConfig, h.genesisConfig)
if err != nil {
- return false
+ return false, nil
}
- return responseStatus.ForkDigest == forkDigest
+ return responseStatus.ForkDigest == forkDigest, nil
}
diff --git a/cl/sentinel/httpreqresp/server.go b/cl/sentinel/httpreqresp/server.go
new file mode 100644
index 00000000000..f9daabe1653
--- /dev/null
+++ b/cl/sentinel/httpreqresp/server.go
@@ -0,0 +1,122 @@
+// package httpreqresp encapsulates eth2 beacon chain resp-resp into http
+package httpreqresp
+
+import (
+ "io"
+ "net/http"
+ "net/http/httptest"
+ "strconv"
+ "time"
+
+ "github.com/libp2p/go-libp2p/core/host"
+ "github.com/libp2p/go-libp2p/core/peer"
+ "github.com/libp2p/go-libp2p/core/protocol"
+)
+
+const (
+ ResponseCodeHeader = "Reqresp-Response-Code"
+ PeerIdHeader = "Reqresp-Peer-Id"
+ TopicHeader = "Reqresp-Topic"
+)
+
+// Do performs an http request against the http handler.
+// NOTE: this is actually very similar to the http.RoundTripper interface... maybe we should investigate using that.
+/*
+
+the following headers have meaning when passed in to the request:
+
+ REQRESP-PEER-ID - the peer id to target for the request
+ REQRESP-TOPIC - the topic to request with
+ REQRESP-EXPECTED-CHUNKS - this is an integer, which will be multiplied by 10 to calculate the amount of seconds the peer has to respond with all the data
+*/
+func Do(handler http.Handler, r *http.Request) (*http.Response, error) {
+ // TODO: there potentially extra alloc here (responses are bufferd)
+ // is that a big deal? not sure. maybe can reuse these buffers since they are read once (and known when close) if so
+ ans := make(chan *http.Response)
+ go func() {
+ res := httptest.NewRecorder()
+ handler.ServeHTTP(res, r)
+ // linter does not know we are passing the resposne through channel.
+ // nolint: bodyclose
+ resp := res.Result()
+ ans <- resp
+ }()
+ select {
+ case res := <-ans:
+ return res, nil
+ case <-r.Context().Done():
+ return nil, r.Context().Err()
+ }
+}
+
+// Handles a request
+func NewRequestHandler(host host.Host) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ // get the peer parameters
+ peerIdBase58 := r.Header.Get("REQRESP-PEER-ID")
+ topic := r.Header.Get("REQRESP-TOPIC")
+ chunkCount := r.Header.Get("REQRESP-EXPECTED-CHUNKS")
+ chunks, _ := strconv.Atoi(chunkCount)
+ // some sanity checking on chunks
+ if chunks < 1 {
+ chunks = 1
+ }
+ // idk why this would happen, so lets make sure it doesnt. future-proofing from bad input
+ if chunks > 512 {
+ chunks = 512
+ }
+ // read the base58 encoded peer id to know which we are trying to dial
+ peerId, err := peer.Decode(peerIdBase58)
+ if err != nil {
+ http.Error(w, "Invalid Peer Id", http.StatusBadRequest)
+ return
+ }
+ // we can't connect to the peer - so we should disconnect them. send a code 4xx
+ stream, err := host.NewStream(r.Context(), peerId, protocol.ID(topic))
+ if err != nil {
+ http.Error(w, "Can't Connect to Peer: "+err.Error(), http.StatusBadRequest)
+ return
+ }
+ defer stream.Close()
+ // this write deadline is not part of the eth p2p spec, but we are implying it.
+ stream.SetWriteDeadline(time.Now().Add(5 * time.Second))
+ if r.Body != nil && r.ContentLength > 0 {
+ _, err := io.Copy(stream, r.Body)
+ if err != nil {
+ http.Error(w, "Processing Stream: "+err.Error(), http.StatusBadRequest)
+ return
+ }
+ }
+ err = stream.CloseWrite()
+ if err != nil {
+ http.Error(w, "Close Write Side: "+err.Error(), http.StatusBadRequest)
+ return
+ }
+ code := make([]byte, 1)
+ // we have 5 seconds to read the next byte. this is the 5 TTFB_TIMEOUT in the spec
+ stream.SetReadDeadline(time.Now().Add(5 * time.Second))
+ _, err = io.ReadFull(stream, code)
+ if err != nil {
+ http.Error(w, "Read Code: "+err.Error(), http.StatusBadRequest)
+ return
+ }
+ // this is not neccesary, but seems like the right thing to do
+ w.Header().Set("CONTENT-TYPE", "application/octet-stream")
+ w.Header().Set("CONTENT-ENCODING", "snappy/stream")
+ // add the response code & headers
+ w.Header().Set("REQRESP-RESPONSE-CODE", strconv.Itoa(int(code[0])))
+ w.Header().Set("REQRESP-PEER-ID", peerIdBase58)
+ w.Header().Set("REQRESP-TOPIC", topic)
+ // the deadline is 10 * expected chunk count, which the user can send. otherwise we will only wait 10 seconds
+ // this is technically incorrect, and more aggressive than the network might like.
+ stream.SetReadDeadline(time.Now().Add(10 * time.Second * time.Duration(chunks)))
+ // copy the data now to the stream
+ // the first write to w will call code 200, so we do not need to
+ _, err = io.Copy(w, stream)
+ if err != nil {
+ http.Error(w, "Reading Stream Response: "+err.Error(), http.StatusBadRequest)
+ return
+ }
+ return
+ }
+}
diff --git a/cl/sentinel/libp2p_settings.go b/cl/sentinel/libp2p_settings.go
new file mode 100644
index 00000000000..82ce46f5368
--- /dev/null
+++ b/cl/sentinel/libp2p_settings.go
@@ -0,0 +1,66 @@
+package sentinel
+
+import (
+ "math"
+ "time"
+
+ pubsub "github.com/libp2p/go-libp2p-pubsub"
+ "github.com/libp2p/go-libp2p/core/peer"
+)
+
+// determines the decay rate from the provided time period till
+// the decayToZero value. Ex: ( 1 -> 0.01)
+func (s *Sentinel) scoreDecay(totalDurationDecay time.Duration) float64 {
+ numOfTimes := totalDurationDecay / s.oneSlotDuration()
+ return math.Pow(decayToZero, 1/float64(numOfTimes))
+}
+
+func (s *Sentinel) pubsubOptions() []pubsub.Option {
+ thresholds := &pubsub.PeerScoreThresholds{
+ GossipThreshold: -4000,
+ PublishThreshold: -8000,
+ GraylistThreshold: -16000,
+ AcceptPXThreshold: 100,
+ OpportunisticGraftThreshold: 5,
+ }
+ scoreParams := &pubsub.PeerScoreParams{
+ Topics: make(map[string]*pubsub.TopicScoreParams),
+ TopicScoreCap: 32.72,
+ AppSpecificScore: func(p peer.ID) float64 {
+ return 0
+ },
+ AppSpecificWeight: 1,
+ IPColocationFactorWeight: -35.11,
+ IPColocationFactorThreshold: 10,
+ IPColocationFactorWhitelist: nil,
+ BehaviourPenaltyWeight: -15.92,
+ BehaviourPenaltyThreshold: 6,
+ BehaviourPenaltyDecay: s.scoreDecay(10 * s.oneEpochDuration()), // 10 epochs
+ DecayInterval: s.oneSlotDuration(),
+ DecayToZero: decayToZero,
+ RetainScore: 100 * s.oneEpochDuration(), // Retain for 100 epochs
+ }
+ pubsubQueueSize := 600
+ psOpts := []pubsub.Option{
+ pubsub.WithMessageSignaturePolicy(pubsub.StrictNoSign),
+ pubsub.WithMessageIdFn(s.msgId),
+ pubsub.WithNoAuthor(),
+ pubsub.WithPeerOutboundQueueSize(pubsubQueueSize),
+ pubsub.WithMaxMessageSize(int(s.cfg.NetworkConfig.GossipMaxSizeBellatrix)),
+ pubsub.WithValidateQueueSize(pubsubQueueSize),
+ pubsub.WithPeerScore(scoreParams, thresholds),
+ pubsub.WithGossipSubParams(pubsubGossipParam()),
+ }
+ return psOpts
+}
+
+// creates a custom gossipsub parameter set.
+func pubsubGossipParam() pubsub.GossipSubParams {
+ gParams := pubsub.DefaultGossipSubParams()
+ gParams.Dlo = gossipSubDlo
+ gParams.D = gossipSubD
+ gParams.HeartbeatInterval = gossipSubHeartbeatInterval
+ gParams.HistoryLength = gossipSubMcacheLen
+ gParams.HistoryGossip = gossipSubMcacheGossip
+ return gParams
+}
diff --git a/cmd/sentinel/sentinel/msg_id.go b/cl/sentinel/msg_id.go
similarity index 100%
rename from cmd/sentinel/sentinel/msg_id.go
rename to cl/sentinel/msg_id.go
diff --git a/cmd/sentinel/sentinel/msg_id_test.go b/cl/sentinel/msg_id_test.go
similarity index 100%
rename from cmd/sentinel/sentinel/msg_id_test.go
rename to cl/sentinel/msg_id_test.go
diff --git a/cl/sentinel/peers/manager.go b/cl/sentinel/peers/manager.go
deleted file mode 100644
index 033c99f074f..00000000000
--- a/cl/sentinel/peers/manager.go
+++ /dev/null
@@ -1,66 +0,0 @@
-package peers
-
-import (
- "context"
- "sync"
- "time"
-
- "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru"
- "github.com/libp2p/go-libp2p/core/host"
- "github.com/libp2p/go-libp2p/core/peer"
-)
-
-const (
- maxBadPeers = 50000
- maxPeerRecordSize = 1000
- DefaultMaxPeers = 33
- MaxBadResponses = 50
-)
-
-func newPeer() *Peer {
- return &Peer{
- lastTouched: time.Now(),
- working: make(chan struct{}),
- }
-}
-
-type Manager struct {
- host host.Host
- peers *lru.Cache[peer.ID, *Peer]
- peerTimeout time.Duration
-
- mu sync.Mutex
-}
-
-func NewManager(ctx context.Context, host host.Host) *Manager {
- c, err := lru.NewWithEvict("beacon_peer_manager", 500, func(i peer.ID, p *Peer) {
- p.Disconnect("booted for inactivity")
- })
- if err != nil {
- panic(err)
- }
- m := &Manager{
- peerTimeout: 8 * time.Hour,
- peers: c,
- host: host,
- }
- return m
-}
-
-func (m *Manager) GetPeer(id peer.ID) (peer *Peer) {
- m.mu.Lock()
- p, ok := m.peers.Get(id)
- if !ok {
- p = &Peer{
- pid: id,
- working: make(chan struct{}, 1),
- m: m,
- penalties: 0,
- banned: false,
- }
- m.peers.Add(id, p)
- }
- p.lastTouched = time.Now()
- m.mu.Unlock()
- return p
-}
diff --git a/cl/sentinel/peers/peer.go b/cl/sentinel/peers/peer.go
deleted file mode 100644
index 026b319a928..00000000000
--- a/cl/sentinel/peers/peer.go
+++ /dev/null
@@ -1,154 +0,0 @@
-package peers
-
-import (
- "strings"
- "sync"
- "time"
-
- "github.com/ledgerwatch/log/v3"
- "github.com/libp2p/go-libp2p/core/peer"
-)
-
-const USERAGENT_UNKNOWN = "unknown"
-
-type PeeredObject[T any] struct {
- Peer string
- Data T
-}
-
-// Record Peer data.
-type Peer struct {
- penalties int
- banned bool
-
- // request info
- lastRequest time.Time
- successCount int
- useCount int
- // gc data
- lastTouched time.Time
-
- mu sync.Mutex
-
- // peer id
- pid peer.ID
-
- // acts as the mutex for making requests. channel used to avoid use of TryLock
- working chan struct{}
- // backref to the manager that owns this peer
- m *Manager
-}
-
-func (p *Peer) do(fn func(p *Peer)) {
- if fn == nil {
- return
- }
- p.mu.Lock()
- defer p.mu.Unlock()
- fn(p)
-}
-
-func (p *Peer) UserAgent() string {
- rawVer, err := p.m.host.Peerstore().Get(p.pid, "AgentVersion")
- if err == nil {
- if str, ok := rawVer.(string); ok {
- return str
- }
- }
- return USERAGENT_UNKNOWN
-}
-
-func (p *Peer) Penalize() {
- log.Trace("[Sentinel Peers] peer penalized", "peer-id", p.pid)
- p.do(func(p *Peer) {
- p.penalties++
- })
-}
-
-func (p *Peer) Forgive() {
- log.Trace("[Sentinel Peers] peer forgiven", "peer-id", p.pid)
- p.do(func(p *Peer) {
- if p.penalties > 0 {
- p.penalties--
- }
- })
-}
-
-func (p *Peer) MarkUsed() {
- p.do(func(p *Peer) {
- p.useCount++
- p.lastRequest = time.Now()
- })
- log.Trace("[Sentinel Peers] peer used", "peer-id", p.pid, "uses", p.useCount)
-}
-
-func (p *Peer) MarkReplied() {
- p.do(func(p *Peer) {
- p.successCount++
- })
- log.Trace("[Sentinel Peers] peer replied", "peer-id", p.pid, "uses", p.useCount, "success", p.successCount)
-}
-
-func (p *Peer) IsAvailable() (available bool) {
- p.mu.Lock()
- defer p.mu.Unlock()
- if p.banned {
- return false
- }
- if p.penalties > MaxBadResponses {
- return false
- }
- if time.Now().Sub(p.lastRequest) > 0*time.Second {
- return true
- }
- return false
-}
-
-func (p *Peer) IsBad() (bad bool) {
- p.mu.Lock()
- defer p.mu.Unlock()
- if p.banned {
- bad = true
- return
- }
- bad = p.penalties > MaxBadResponses
- return
-}
-
-var skipReasons = []string{
- "bad handshake",
- "context",
- "security protocol",
- "connect:",
- "dial backoff",
-}
-
-func anySetInString(set []string, in string) bool {
- for _, v := range skipReasons {
- if strings.Contains(in, v) {
- return true
- }
- }
- return false
-}
-
-func (p *Peer) Disconnect(reason ...string) {
- rzn := strings.Join(reason, " ")
- if !anySetInString(skipReasons, rzn) {
- log.Trace("[Sentinel Peers] disconnecting from peer", "peer-id", p.pid, "reason", strings.Join(reason, " "))
- }
- p.m.host.Peerstore().RemovePeer(p.pid)
- p.m.host.Network().ClosePeer(p.pid)
- p.do(func(p *Peer) {
- p.penalties = 0
- })
-}
-
-func (p *Peer) Ban(reason ...string) {
- log.Debug("[Sentinel Peers] bad peers has been banned", "peer-id", p.pid, "reason", strings.Join(reason, " "))
- p.do(func(p *Peer) {
- p.banned = true
- })
- p.Disconnect(reason...)
- return
-}
diff --git a/cl/sentinel/peers/peers.go b/cl/sentinel/peers/peers.go
new file mode 100644
index 00000000000..443aa660980
--- /dev/null
+++ b/cl/sentinel/peers/peers.go
@@ -0,0 +1,13 @@
+package peers
+
+const (
+ maxBadPeers = 50000
+ maxPeerRecordSize = 1000
+ DefaultMaxPeers = 64
+ MaxBadResponses = 50
+)
+
+type PeeredObject[T any] struct {
+ Peer string
+ Data T
+}
diff --git a/cl/sentinel/peers/pool.go b/cl/sentinel/peers/pool.go
new file mode 100644
index 00000000000..e5237b6abdd
--- /dev/null
+++ b/cl/sentinel/peers/pool.go
@@ -0,0 +1,141 @@
+package peers
+
+import (
+ "fmt"
+ "sync"
+ "sync/atomic"
+
+ "github.com/ledgerwatch/erigon-lib/common/ring"
+ "github.com/libp2p/go-libp2p/core/peer"
+)
+
+// Item is an item in the pool
+type Item struct {
+ id peer.ID
+ score atomic.Int64
+ uses int
+}
+
+func (i *Item) Id() peer.ID {
+ return i.id
+}
+
+func (i *Item) String() string {
+ return i.id.String()
+}
+
+func (i *Item) Score() int {
+ return int(i.score.Load())
+}
+
+func (i *Item) Add(n int) int {
+ return int(i.score.Add(int64(n)))
+}
+
+// PeerPool is a pool of peers
+type Pool struct {
+
+ // allowedPeers are the peers that are allowed.
+ // peers not on this list will be silently discarded
+ // when returned, and skipped when requesting
+ peerData map[peer.ID]*Item
+
+ bannedPeers map[peer.ID]struct{}
+ queue *ring.Buffer[*Item]
+
+ mu sync.Mutex
+}
+
+func NewPool() *Pool {
+ return &Pool{
+ peerData: make(map[peer.ID]*Item),
+ bannedPeers: map[peer.ID]struct{}{},
+ queue: ring.NewBuffer[*Item](0, 1024),
+ }
+}
+
+func (p *Pool) BanStatus(pid peer.ID) bool {
+ _, ok := p.bannedPeers[pid]
+ return ok
+}
+
+func (p *Pool) AddPeer(pid peer.ID) {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+ // if peer banned, return immediately
+ if _, ok := p.bannedPeers[pid]; ok {
+ return
+ }
+ // if peer already here, return immediately
+ if _, ok := p.peerData[pid]; ok {
+ return
+ }
+ newItem := &Item{
+ id: pid,
+ }
+ p.peerData[pid] = newItem
+ // add it to our queue as a new item
+ p.queue.PushBack(newItem)
+}
+
+func (p *Pool) SetBanStatus(pid peer.ID, banned bool) {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+ if banned {
+ p.bannedPeers[pid] = struct{}{}
+ delete(p.peerData, pid)
+ } else {
+ delete(p.bannedPeers, pid)
+ }
+}
+
+func (p *Pool) RemovePeer(pid peer.ID) {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+ delete(p.peerData, pid)
+}
+
+// returnPeer is an internal function to return per to the pool. assume has lock
+func (p *Pool) returnPeer(i *Item) {
+ // if peer not in our map, return and do not return peer
+ if _, ok := p.peerData[i.id]; !ok {
+ return
+ }
+ // append peer to the end of our ring buffer
+ p.queue.PushBack(i)
+}
+
+// nextPeer gets next peer, skipping bad peers. assume has lock
+func (p *Pool) nextPeer() (i *Item, ok bool) {
+ val, ok := p.queue.PopFront()
+ if !ok {
+ return nil, false
+ }
+ // if peer been banned, get next peer
+ if _, ok := p.bannedPeers[val.id]; ok {
+ return p.nextPeer()
+ }
+ // if peer not in set, get next peer
+ if _, ok := p.peerData[val.id]; !ok {
+ return p.nextPeer()
+ }
+ return val, true
+}
+
+// Request a peer from the pool
+// caller MUST call the done function when done with peer IFF err != nil
+func (p *Pool) Request() (pid *Item, done func(), err error) {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+ //grab a peer from our ringbuffer
+ val, ok := p.queue.PopFront()
+ if !ok {
+ return nil, nil, fmt.Errorf("no peers? ( :( > ")
+ }
+ return val, func() {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+ val.uses = val.uses + 1
+ p.returnPeer(val)
+ }, nil
+}
diff --git a/cl/sentinel/peers/readme.md b/cl/sentinel/peers/readme.md
deleted file mode 100644
index 8804be80f7b..00000000000
--- a/cl/sentinel/peers/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
-## wip
-
-
-this is work in progress
diff --git a/cmd/sentinel/sentinel/sentinel.go b/cl/sentinel/sentinel.go
similarity index 72%
rename from cmd/sentinel/sentinel/sentinel.go
rename to cl/sentinel/sentinel.go
index 3ce1d33780c..51fab5101fb 100644
--- a/cmd/sentinel/sentinel/sentinel.go
+++ b/cl/sentinel/sentinel.go
@@ -17,15 +17,18 @@ import (
"context"
"crypto/ecdsa"
"fmt"
- "math"
"net"
+ "net/http"
"time"
+ "github.com/go-chi/chi/v5"
+ "github.com/ledgerwatch/erigon/cl/sentinel/handlers"
+ "github.com/ledgerwatch/erigon/cl/sentinel/handshake"
+ "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp"
+ "github.com/ledgerwatch/erigon/cl/sentinel/peers"
+
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/persistence"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/handlers"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/handshake"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/p2p/discover"
"github.com/ledgerwatch/erigon/p2p/enode"
@@ -59,12 +62,15 @@ const (
)
type Sentinel struct {
- started bool
- listener *discover.UDPv5 // this is us in the network.
- ctx context.Context
- host host.Host
- cfg *SentinelConfig
- peers *peers.Manager
+ started bool
+ listener *discover.UDPv5 // this is us in the network.
+ ctx context.Context
+ host host.Host
+ cfg *SentinelConfig
+ peers *peers.Pool
+
+ httpApi http.Handler
+
metadataV2 *cltypes.Metadata
handshaker *handshake.HandShaker
@@ -169,63 +175,6 @@ func (s *Sentinel) createListener() (*discover.UDPv5, error) {
return net, err
}
-// creates a custom gossipsub parameter set.
-func pubsubGossipParam() pubsub.GossipSubParams {
- gParams := pubsub.DefaultGossipSubParams()
- gParams.Dlo = gossipSubDlo
- gParams.D = gossipSubD
- gParams.HeartbeatInterval = gossipSubHeartbeatInterval
- gParams.HistoryLength = gossipSubMcacheLen
- gParams.HistoryGossip = gossipSubMcacheGossip
- return gParams
-}
-
-// determines the decay rate from the provided time period till
-// the decayToZero value. Ex: ( 1 -> 0.01)
-func (s *Sentinel) scoreDecay(totalDurationDecay time.Duration) float64 {
- numOfTimes := totalDurationDecay / s.oneSlotDuration()
- return math.Pow(decayToZero, 1/float64(numOfTimes))
-}
-
-func (s *Sentinel) pubsubOptions() []pubsub.Option {
- thresholds := &pubsub.PeerScoreThresholds{
- GossipThreshold: -4000,
- PublishThreshold: -8000,
- GraylistThreshold: -16000,
- AcceptPXThreshold: 100,
- OpportunisticGraftThreshold: 5,
- }
- scoreParams := &pubsub.PeerScoreParams{
- Topics: make(map[string]*pubsub.TopicScoreParams),
- TopicScoreCap: 32.72,
- AppSpecificScore: func(p peer.ID) float64 {
- return 0
- },
- AppSpecificWeight: 1,
- IPColocationFactorWeight: -35.11,
- IPColocationFactorThreshold: 10,
- IPColocationFactorWhitelist: nil,
- BehaviourPenaltyWeight: -15.92,
- BehaviourPenaltyThreshold: 6,
- BehaviourPenaltyDecay: s.scoreDecay(10 * s.oneEpochDuration()), // 10 epochs
- DecayInterval: s.oneSlotDuration(),
- DecayToZero: decayToZero,
- RetainScore: 100 * s.oneEpochDuration(), // Retain for 100 epochs
- }
- pubsubQueueSize := 600
- psOpts := []pubsub.Option{
- pubsub.WithMessageSignaturePolicy(pubsub.StrictNoSign),
- pubsub.WithMessageIdFn(s.msgId),
- pubsub.WithNoAuthor(),
- pubsub.WithPeerOutboundQueueSize(pubsubQueueSize),
- pubsub.WithMaxMessageSize(int(s.cfg.NetworkConfig.GossipMaxSizeBellatrix)),
- pubsub.WithValidateQueueSize(pubsubQueueSize),
- pubsub.WithPeerScore(scoreParams, thresholds),
- pubsub.WithGossipSubParams(pubsubGossipParam()),
- }
- return psOpts
-}
-
// This is just one of the examples from the libp2p repository.
func New(
ctx context.Context,
@@ -263,19 +212,16 @@ func New(
if err != nil {
return nil, err
}
- if s.metrics {
-
- str, err := rcmgrObs.NewStatsTraceReporter()
- if err != nil {
- return nil, err
- }
+ str, err := rcmgrObs.NewStatsTraceReporter()
+ if err != nil {
+ return nil, err
+ }
- rmgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(rcmgr.DefaultLimits.AutoScale()), rcmgr.WithTraceReporter(str))
- if err != nil {
- return nil, err
- }
- opts = append(opts, libp2p.ResourceManager(rmgr))
+ rmgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(rcmgr.DefaultLimits.AutoScale()), rcmgr.WithTraceReporter(str))
+ if err != nil {
+ return nil, err
}
+ opts = append(opts, libp2p.ResourceManager(rmgr))
gater, err := NewGater(cfg)
if err != nil {
@@ -288,11 +234,16 @@ func New(
if err != nil {
return nil, err
}
+ s.host = host
- s.handshaker = handshake.New(ctx, cfg.GenesisConfig, cfg.BeaconConfig, host)
+ s.peers = peers.NewPool()
- s.host = host
- s.peers = peers.NewManager(ctx, s.host)
+ mux := chi.NewRouter()
+ // mux := httpreqresp.NewRequestHandler(host)
+ mux.Get("/", httpreqresp.NewRequestHandler(host))
+ s.httpApi = mux
+
+ s.handshaker = handshake.New(ctx, cfg.GenesisConfig, cfg.BeaconConfig, s.httpApi)
pubsub.TimeCacheDuration = 550 * gossipSubHeartbeatInterval
s.pubsub, err = pubsub.NewGossipSub(s.ctx, s.host, s.pubsubOptions()...)
@@ -303,6 +254,10 @@ func New(
return s, nil
}
+func (s *Sentinel) ReqRespHandler() http.Handler {
+ return s.httpApi
+}
+
func (s *Sentinel) RecvGossip() <-chan *pubsub.Message {
return s.subManager.Recv()
}
@@ -323,6 +278,10 @@ func (s *Sentinel) Start() error {
// Configuring handshake
s.host.Network().Notify(&network.NotifyBundle{
ConnectedF: s.onConnection,
+ DisconnectedF: func(n network.Network, c network.Conn) {
+ peerId := c.RemotePeer()
+ s.peers.RemovePeer(peerId)
+ },
})
s.subManager = NewGossipManager(s.ctx)
@@ -360,7 +319,7 @@ func (s *Sentinel) Host() host.Host {
return s.host
}
-func (s *Sentinel) Peers() *peers.Manager {
+func (s *Sentinel) Peers() *peers.Pool {
return s.peers
}
diff --git a/cmd/sentinel/sentinel/service/notifiers.go b/cl/sentinel/service/notifiers.go
similarity index 100%
rename from cmd/sentinel/sentinel/service/notifiers.go
rename to cl/sentinel/service/notifiers.go
diff --git a/cmd/sentinel/sentinel/service/service.go b/cl/sentinel/service/service.go
similarity index 59%
rename from cmd/sentinel/sentinel/service/service.go
rename to cl/sentinel/service/service.go
index df2a068d8a5..41b93354962 100644
--- a/cmd/sentinel/sentinel/service/service.go
+++ b/cl/sentinel/service/service.go
@@ -1,21 +1,26 @@
package service
import (
+ "bytes"
"context"
"errors"
"fmt"
+ "io"
+ "net/http"
"strconv"
"strings"
"sync"
"time"
+ "github.com/ledgerwatch/erigon-lib/diagnostics"
+ "github.com/ledgerwatch/erigon/cl/sentinel"
+ "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp"
+ "github.com/ledgerwatch/erigon/cl/sentinel/peers"
+
"github.com/ledgerwatch/erigon-lib/gointerfaces"
sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers"
"github.com/ledgerwatch/log/v3"
pubsub "github.com/libp2p/go-libp2p-pubsub"
"github.com/libp2p/go-libp2p/core/peer"
@@ -30,6 +35,8 @@ type SentinelServer struct {
mu sync.RWMutex
logger log.Logger
+
+ peerStatistics map[string]*diagnostics.PeerStatistics
}
func NewSentinelServer(ctx context.Context, sentinel *sentinel.Sentinel, logger log.Logger) *SentinelServer {
@@ -38,6 +45,7 @@ func NewSentinelServer(ctx context.Context, sentinel *sentinel.Sentinel, logger
ctx: ctx,
gossipNotifier: newGossipNotifier(),
logger: logger,
+ peerStatistics: make(map[string]*diagnostics.PeerStatistics),
}
}
@@ -56,24 +64,23 @@ func extractBlobSideCarIndex(topic string) int {
//BanPeer(context.Context, *Peer) (*EmptyMessage, error)
func (s *SentinelServer) BanPeer(_ context.Context, p *sentinelrpc.Peer) (*sentinelrpc.EmptyMessage, error) {
- s.mu.RLock()
- defer s.mu.RUnlock()
var pid peer.ID
if err := pid.UnmarshalText([]byte(p.Pid)); err != nil {
return nil, err
}
- s.sentinel.Peers().WithPeer(pid, func(peer *peers.Peer) {
- peer.Ban()
- })
+ s.sentinel.Peers().SetBanStatus(pid, true)
+ s.sentinel.Host().Peerstore().RemovePeer(pid)
+ s.sentinel.Host().Network().ClosePeer(pid)
return &sentinelrpc.EmptyMessage{}, nil
}
func (s *SentinelServer) PublishGossip(_ context.Context, msg *sentinelrpc.GossipData) (*sentinelrpc.EmptyMessage, error) {
- s.mu.RLock()
- defer s.mu.RUnlock()
manager := s.sentinel.GossipManager()
// Snappify payload before sending it to gossip
compressedData := utils.CompressSnappy(msg.Data)
+
+ s.trackPeerStatistics(msg.GetPeer().Pid, false, msg.Type.String(), "unknown", len(compressedData))
+
var subscription *sentinel.GossipSubscription
switch msg.Type {
@@ -146,61 +153,102 @@ func (s *SentinelServer) withTimeoutCtx(pctx context.Context, dur time.Duration)
return ctx, cn
}
-func (s *SentinelServer) SendRequest(ctx context.Context, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) {
- s.mu.RLock()
- defer s.mu.RUnlock()
- retryReqInterval := time.NewTicker(100 * time.Millisecond)
- defer retryReqInterval.Stop()
- doneCh := make(chan *sentinelrpc.ResponseData)
- // Try finding the data to our peers
- uniquePeers := map[peer.ID]struct{}{}
- requestPeer := func(peer *peers.Peer) {
- peer.MarkUsed()
- defer peer.MarkUnused()
- data, isError, err := communication.SendRequestRawToPeer(ctx, s.sentinel.Host(), req.Data, req.Topic, peer.ID())
- if err != nil {
- if strings.Contains(err.Error(), "protocols not supported") {
- peer.Ban("peer does not support protocol")
- }
- return
- }
- if isError > 3 {
- peer.Disconnect(fmt.Sprintf("invalid response, starting byte %d", isError))
- }
- if isError != 0 {
- peer.Penalize()
- return
- }
- ans := &sentinelrpc.ResponseData{
- Data: data,
- Error: isError != 0,
- Peer: &sentinelrpc.Peer{
- Pid: peer.ID().String(),
- },
+func (s *SentinelServer) requestPeer(ctx context.Context, pid peer.ID, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) {
+ // prepare the http request
+ httpReq, err := http.NewRequest("GET", "http://service.internal/", bytes.NewBuffer(req.Data))
+ if err != nil {
+ return nil, err
+ }
+ // set the peer and topic we are requesting
+ httpReq.Header.Set("REQRESP-PEER-ID", pid.String())
+ httpReq.Header.Set("REQRESP-TOPIC", req.Topic)
+ // for now this can't actually error. in the future, it can due to a network error
+ resp, err := httpreqresp.Do(s.sentinel.ReqRespHandler(), httpReq)
+ if err != nil {
+ // we remove, but dont ban the peer if we fail. this is because its probably not their fault, but maybe it is.
+ return nil, err
+ }
+ defer resp.Body.Close()
+ // some standard http error code parsing
+ if resp.StatusCode < 200 || resp.StatusCode > 399 {
+ errBody, _ := io.ReadAll(resp.Body)
+ errorMessage := fmt.Errorf("SentinelHttp: %s", string(errBody))
+ if resp.StatusCode >= 400 && resp.StatusCode < 500 {
+ s.sentinel.Peers().RemovePeer(pid)
+ s.sentinel.Host().Peerstore().RemovePeer(pid)
+ s.sentinel.Host().Network().ClosePeer(pid)
}
- select {
- case doneCh <- ans:
- peer.MarkReplied()
- retryReqInterval.Stop()
- return
- case <-ctx.Done():
- return
+ if resp.StatusCode >= 500 && resp.StatusCode < 600 {
+ s.sentinel.Host().Peerstore().RemovePeer(pid)
+ s.sentinel.Host().Network().ClosePeer(pid)
}
+ return nil, errorMessage
+ }
+ // we should never get an invalid response to this. our responder should always set it on non-error response
+ isError, err := strconv.Atoi(resp.Header.Get("REQRESP-RESPONSE-CODE"))
+ if err != nil {
+ // TODO: think about how to properly handle this. should we? (or should we just assume no response is success?)
+ return nil, err
+ }
+ // known error codes, just remove the peer
+ if isError == 3 || isError == 2 {
+ s.sentinel.Host().Peerstore().RemovePeer(pid)
+ s.sentinel.Host().Network().ClosePeer(pid)
+ return nil, fmt.Errorf("peer error code: %d", isError)
+ }
+ // unknown error codes
+ if isError > 3 {
+ s.logger.Debug("peer returned unknown erro", "id", pid.String())
+ s.sentinel.Host().Peerstore().RemovePeer(pid)
+ s.sentinel.Host().Network().ClosePeer(pid)
+ return nil, fmt.Errorf("peer returned unknown error: %d", isError)
+ }
+ // read the body from the response
+ data, err := io.ReadAll(resp.Body)
+ if err != nil {
+ return nil, err
}
+ ans := &sentinelrpc.ResponseData{
+ Data: data,
+ Error: isError != 0,
+ Peer: &sentinelrpc.Peer{
+ Pid: pid.String(),
+ },
+ }
+ return ans, nil
+
+}
+
+func (s *SentinelServer) SendRequest(ctx context.Context, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) {
+ // Try finding the data to our peers
+ uniquePeers := map[peer.ID]struct{}{}
+ doneCh := make(chan *sentinelrpc.ResponseData)
go func() {
- for {
- pid, err := s.sentinel.RandomPeer(req.Topic)
- if err != nil {
- continue
- }
- if _, ok := uniquePeers[pid]; !ok {
- go s.sentinel.Peers().WithPeer(pid, requestPeer)
+ for i := 0; i < peers.MaxBadResponses; i++ {
+ // this is using return statements instead of continue, since it saves a few lines
+ // but me writing this comment has put them back.. oh no!!! anyways, returning true means we stop.
+ if func() bool {
+ peer, done, err := s.sentinel.Peers().Request()
+ if err != nil {
+ return false
+ }
+ defer done()
+ pid := peer.Id()
+ _, ok := uniquePeers[pid]
+ if ok {
+ return false
+ }
+ resp, err := s.requestPeer(ctx, pid, req)
+ if err != nil {
+ s.logger.Trace("[sentinel] peer gave us bad data", "peer", pid, "err", err)
+ // we simply retry
+ return false
+ }
uniquePeers[pid] = struct{}{}
- }
- select {
- case <-retryReqInterval.C:
- case <-ctx.Done():
- return
+ doneCh <- resp
+ return true
+ }() {
+ break
}
}
}()
@@ -217,8 +265,6 @@ func (s *SentinelServer) SendRequest(ctx context.Context, req *sentinelrpc.Reque
}
func (s *SentinelServer) SetStatus(_ context.Context, req *sentinelrpc.Status) (*sentinelrpc.EmptyMessage, error) {
- s.mu.RLock()
- defer s.mu.RUnlock()
// Send the request and get the data if we get an answer.
s.sentinel.SetStatus(&cltypes.Status{
ForkDigest: utils.Uint32ToBytes4(req.ForkDigest),
@@ -231,8 +277,6 @@ func (s *SentinelServer) SetStatus(_ context.Context, req *sentinelrpc.Status) (
}
func (s *SentinelServer) GetPeers(_ context.Context, _ *sentinelrpc.EmptyMessage) (*sentinelrpc.PeerCount, error) {
- s.mu.RLock()
- defer s.mu.RUnlock()
// Send the request and get the data if we get an answer.
return &sentinelrpc.PeerCount{
Amount: uint64(s.sentinel.GetPeersCount()),
@@ -258,6 +302,7 @@ func (s *SentinelServer) ListenToGossip() {
func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error {
var err error
s.logger.Trace("[Sentinel Gossip] Received Packet", "topic", pkt.Topic)
+
data := pkt.GetData()
// If we use snappy codec then decompress it accordingly.
@@ -271,6 +316,10 @@ func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error {
if err != nil {
return err
}
+
+ msgType, msgCap := parseTopic(pkt.GetTopic())
+ s.trackPeerStatistics(string(textPid), true, msgType, msgCap, len(data))
+
// Check to which gossip it belongs to.
if strings.Contains(*pkt.Topic, string(sentinel.BeaconBlockTopic)) {
s.gossipNotifier.notify(sentinelrpc.GossipType_BeaconBlockGossipType, data, string(textPid))
@@ -283,10 +332,60 @@ func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error {
} else if strings.Contains(*pkt.Topic, string(sentinel.AttesterSlashingTopic)) {
s.gossipNotifier.notify(sentinelrpc.GossipType_AttesterSlashingGossipType, data, string(textPid))
} else if strings.Contains(*pkt.Topic, string(sentinel.BlsToExecutionChangeTopic)) {
- s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeType, data, string(textPid))
+ s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeGossipType, data, string(textPid))
} else if strings.Contains(*pkt.Topic, string(sentinel.BlobSidecarTopic)) {
// extract the index
s.gossipNotifier.notifyBlob(sentinelrpc.GossipType_BlobSidecarType, data, string(textPid), extractBlobSideCarIndex(*pkt.Topic))
}
return nil
}
+
+func (s *SentinelServer) GetPeersStatistics() map[string]*diagnostics.PeerStatistics {
+ stats := make(map[string]*diagnostics.PeerStatistics)
+ for k, v := range s.peerStatistics {
+ stats[k] = v
+ delete(s.peerStatistics, k)
+ }
+
+ return stats
+}
+
+func (s *SentinelServer) trackPeerStatistics(peerID string, inbound bool, msgType string, msgCap string, bytes int) {
+ if s.peerStatistics == nil {
+ s.peerStatistics = make(map[string]*diagnostics.PeerStatistics)
+ }
+
+ if _, exists := s.peerStatistics[peerID]; !exists {
+ s.peerStatistics[peerID] = &diagnostics.PeerStatistics{
+ CapBytesIn: make(map[string]uint64),
+ CapBytesOut: make(map[string]uint64),
+ TypeBytesIn: make(map[string]uint64),
+ TypeBytesOut: make(map[string]uint64),
+ }
+ }
+
+ stats := s.peerStatistics[peerID]
+
+ if inbound {
+ stats.BytesIn += uint64(bytes)
+ stats.CapBytesIn[msgCap] += uint64(bytes)
+ stats.TypeBytesIn[msgType] += uint64(bytes)
+ } else {
+ stats.BytesOut += uint64(bytes)
+ stats.CapBytesOut[msgCap] += uint64(bytes)
+ stats.TypeBytesOut[msgType] += uint64(bytes)
+ }
+}
+
+func parseTopic(input string) (string, string) {
+ parts := strings.Split(input, "/")
+
+ if len(parts) < 4 {
+ return "unknown", "unknown"
+ }
+
+ capability := parts[1]
+ topick := parts[3]
+
+ return capability, topick
+}
diff --git a/cmd/sentinel/sentinel/service/start.go b/cl/sentinel/service/start.go
similarity index 98%
rename from cmd/sentinel/sentinel/service/start.go
rename to cl/sentinel/service/start.go
index bce041d1141..efcd95ac77a 100644
--- a/cmd/sentinel/sentinel/service/start.go
+++ b/cl/sentinel/service/start.go
@@ -4,11 +4,12 @@ import (
"context"
"net"
+ "github.com/ledgerwatch/erigon/cl/sentinel"
+
"github.com/ledgerwatch/erigon-lib/direct"
sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/persistence"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel"
"github.com/ledgerwatch/log/v3"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
diff --git a/cmd/sentinel/sentinel/utils.go b/cl/sentinel/utils.go
similarity index 59%
rename from cmd/sentinel/sentinel/utils.go
rename to cl/sentinel/utils.go
index 6df55976b20..e3fdd9cd61c 100644
--- a/cmd/sentinel/sentinel/utils.go
+++ b/cl/sentinel/utils.go
@@ -1,29 +1,24 @@
-/*
- Copyright 2022 Erigon-Lightclient contributors
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
+// Copyright 2022 Erigon-Lightclient contributors
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// package sentinel
package sentinel
import (
"crypto/ecdsa"
- "crypto/rand"
"fmt"
- "math/big"
"net"
- "strings"
"time"
"github.com/btcsuite/btcd/btcec/v2"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers"
"github.com/ledgerwatch/erigon/p2p/enode"
"github.com/ledgerwatch/log/v3"
"github.com/libp2p/go-libp2p/core/crypto"
@@ -107,65 +102,6 @@ func convertToMultiAddr(nodes []*enode.Node) []multiaddr.Multiaddr {
var shuffleSource = randutil.NewMathRandomGenerator()
-// will iterate onto randoms nodes until our sentinel connects to one
-func connectToRandomPeer(s *Sentinel, topic string) (peerInfo peer.ID, err error) {
- var sub *GossipSubscription
- for t, currSub := range s.subManager.subscriptions {
- if strings.Contains(t, topic) {
- sub = currSub
- }
- }
-
- if sub == nil {
- return peer.ID(""), fmt.Errorf("no peers")
- }
- validPeerList := s.Host().Network().Peers()
- // blocksSub := s.subManager.GetMatchingSubscription(string(BeaconBlockTopic))
- // if blocksSub != nil {
- // validPeerList = blocksSub.topic.ListPeers()
- // }
-
- //validPeerList := sub.topic.ListPeers()
- if len(validPeerList) == 0 {
- return peer.ID(""), fmt.Errorf("no peers")
- }
- for i := range validPeerList {
- j := shuffleSource.Intn(i + 1)
- validPeerList[i], validPeerList[j] = validPeerList[j], validPeerList[i]
- }
-
- connectedPeer := false
- maxTries := peers.DefaultMaxPeers
- tries := 0
- for !connectedPeer {
- if tries >= maxTries {
- break
- }
- tries++
- index := int64(0)
- if len(validPeerList) > 1 {
- n, err := rand.Int(rand.Reader, big.NewInt(int64(len(validPeerList)-1)))
- if err != nil {
- panic(err)
- }
- index = n.Int64()
- }
- available := false
- s.peers.TryPeer(validPeerList[index], func(peer *peers.Peer, ok bool) {
- if !ok {
- return
- }
- available = peer.IsAvailable()
- })
- if !available {
- continue
- }
- return validPeerList[index], nil
- }
-
- return peer.ID(""), fmt.Errorf("failed to connect to peer")
-}
-
func (s *Sentinel) oneSlotDuration() time.Duration {
return time.Duration(s.cfg.BeaconConfig.SecondsPerSlot) * time.Second
}
diff --git a/cmd/sentinel/sentinel/utils_test.go b/cl/sentinel/utils_test.go
similarity index 64%
rename from cmd/sentinel/sentinel/utils_test.go
rename to cl/sentinel/utils_test.go
index 10e60588b64..106fdd9a7a7 100644
--- a/cmd/sentinel/sentinel/utils_test.go
+++ b/cl/sentinel/utils_test.go
@@ -4,9 +4,6 @@ import (
"encoding/hex"
"testing"
- "github.com/ledgerwatch/erigon/p2p/enode"
- "github.com/ledgerwatch/erigon/p2p/enr"
- "github.com/ledgerwatch/erigon/rlp"
"github.com/libp2p/go-libp2p/core/peer"
)
@@ -63,32 +60,33 @@ func TestMultiAddressBuilderWithID(t *testing.T) {
}
}
-func TestConvertToMultiAddr(t *testing.T) {
- var r enr.Record
- if err := rlp.DecodeBytes(pyRecord, &r); err != nil {
- t.Fatalf("can't decode: %v", err)
- }
- n, err := enode.New(enode.ValidSchemes, &r)
- if err != nil {
- t.Fatalf("cannot create new node: %v", err)
- }
-
- testCases := []struct {
- nodes []*enode.Node
- expected []string
- }{
- {
- nodes: []*enode.Node{n},
- expected: []string{"/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmSH2XVgZqYHWucap5kuPzLnt2TsNQkoppVxB5eJGvaXwm"},
- },
- }
-
- for _, testCase := range testCases {
- multiAddrs := convertToMultiAddr(testCase.nodes)
- for i, multiAddr := range multiAddrs {
- if multiAddr.String() != testCase.expected[i] {
- t.Errorf("for test case: %d, expected: %s, got: %s", i, testCase.expected[i], multiAddr)
- }
- }
- }
-}
+// TODO: reimplement this test with the new erigon-lib rlp decoder at some point
+//func TestConvertToMultiAddr(t *testing.T) {
+// var r enr.Record
+// if err := rlp.DecodeBytes(pyRecord, &r); err != nil {
+// t.Fatalf("can't decode: %v", err)
+// }
+// n, err := enode.New(enode.ValidSchemes, &r)
+// if err != nil {
+// t.Fatalf("cannot create new node: %v", err)
+// }
+//
+// testCases := []struct {
+// nodes []*enode.Node
+// expected []string
+// }{
+// {
+// nodes: []*enode.Node{n},
+// expected: []string{"/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmSH2XVgZqYHWucap5kuPzLnt2TsNQkoppVxB5eJGvaXwm"},
+// },
+// }
+//
+// for _, testCase := range testCases {
+// multiAddrs := convertToMultiAddr(testCase.nodes)
+// for i, multiAddr := range multiAddrs {
+// if multiAddr.String() != testCase.expected[i] {
+// t.Errorf("for test case: %d, expected: %s, got: %s", i, testCase.expected[i], multiAddr)
+// }
+// }
+// }
+//}
diff --git a/cl/spectest/consensus_tests/bls.go b/cl/spectest/consensus_tests/bls.go
index 59a8da3fecc..2c1e6247fee 100644
--- a/cl/spectest/consensus_tests/bls.go
+++ b/cl/spectest/consensus_tests/bls.go
@@ -1,10 +1,9 @@
package consensus_tests
import (
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"testing"
-
- "github.com/ledgerwatch/erigon/spectest"
)
type BlsAggregateVerify struct {
diff --git a/cl/spectest/consensus_tests/epoch_processing.go b/cl/spectest/consensus_tests/epoch_processing.go
index 72f2c97e30e..390c2ae4289 100644
--- a/cl/spectest/consensus_tests/epoch_processing.go
+++ b/cl/spectest/consensus_tests/epoch_processing.go
@@ -1,6 +1,7 @@
package consensus_tests
import (
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"os"
"testing"
@@ -9,7 +10,6 @@ import (
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
"github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/cl/spectest/consensus_tests/finality.go b/cl/spectest/consensus_tests/finality.go
index 1c72fcfb059..a313c8a72ab 100644
--- a/cl/spectest/consensus_tests/finality.go
+++ b/cl/spectest/consensus_tests/finality.go
@@ -3,10 +3,10 @@ package consensus_tests
import (
"fmt"
"github.com/ledgerwatch/erigon/cl/transition/machine"
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"testing"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/cl/spectest/consensus_tests/fork_choice.go b/cl/spectest/consensus_tests/fork_choice.go
index 0ceaef0baeb..ca39a83c042 100644
--- a/cl/spectest/consensus_tests/fork_choice.go
+++ b/cl/spectest/consensus_tests/fork_choice.go
@@ -3,6 +3,7 @@ package consensus_tests
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"testing"
@@ -10,11 +11,12 @@ import (
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
+ "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph"
"github.com/ledgerwatch/erigon/cl/pool"
+ "github.com/spf13/afero"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
@@ -153,7 +155,7 @@ func (b *ForkChoice) Run(t *testing.T, root fs.FS, c spectest.TestCase) (err err
anchorState, err := spectest.ReadBeaconState(root, c.Version(), "anchor_state.ssz_snappy")
require.NoError(t, err)
- forkStore, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), false)
+ forkStore, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), fork_graph.NewForkGraphDisk(anchorState, afero.NewMemMapFs()))
require.NoError(t, err)
var steps []ForkChoiceStep
diff --git a/cl/spectest/consensus_tests/forks.go b/cl/spectest/consensus_tests/forks.go
index 796673f5b3f..39d97f98165 100644
--- a/cl/spectest/consensus_tests/forks.go
+++ b/cl/spectest/consensus_tests/forks.go
@@ -2,12 +2,12 @@ package consensus_tests
import (
"fmt"
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"os"
"testing"
"github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/cl/spectest/consensus_tests/operations.go b/cl/spectest/consensus_tests/operations.go
index 71fa5157bc9..f2de0d6a784 100644
--- a/cl/spectest/consensus_tests/operations.go
+++ b/cl/spectest/consensus_tests/operations.go
@@ -2,6 +2,7 @@ package consensus_tests
import (
"fmt"
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"os"
"testing"
@@ -10,7 +11,6 @@ import (
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/cl/spectest/consensus_tests/rewards.go b/cl/spectest/consensus_tests/rewards.go
index f22f02af4dd..15c3460d813 100644
--- a/cl/spectest/consensus_tests/rewards.go
+++ b/cl/spectest/consensus_tests/rewards.go
@@ -1,10 +1,9 @@
package consensus_tests
import (
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"testing"
-
- "github.com/ledgerwatch/erigon/spectest"
)
type RewardsCore struct {
diff --git a/cl/spectest/consensus_tests/sanity.go b/cl/spectest/consensus_tests/sanity.go
index 493f3ddcf4e..1b28ab2face 100644
--- a/cl/spectest/consensus_tests/sanity.go
+++ b/cl/spectest/consensus_tests/sanity.go
@@ -2,12 +2,12 @@ package consensus_tests
import (
"github.com/ledgerwatch/erigon/cl/transition/machine"
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"os"
"testing"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/cl/spectest/consensus_tests/shuffling.go b/cl/spectest/consensus_tests/shuffling.go
index c26711d3b8c..f8f0898b970 100644
--- a/cl/spectest/consensus_tests/shuffling.go
+++ b/cl/spectest/consensus_tests/shuffling.go
@@ -1,6 +1,7 @@
package consensus_tests
import (
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"testing"
@@ -10,7 +11,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/cl/spectest/consensus_tests/ssz_static.go b/cl/spectest/consensus_tests/ssz_static.go
index b736e22564f..b38e71df336 100644
--- a/cl/spectest/consensus_tests/ssz_static.go
+++ b/cl/spectest/consensus_tests/ssz_static.go
@@ -1,9 +1,15 @@
package consensus_tests
import (
+ "bytes"
"io/fs"
"testing"
+ "github.com/ledgerwatch/erigon/spectest"
+
+ "github.com/ledgerwatch/erigon/cl/clparams"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -11,7 +17,6 @@ import (
"github.com/ledgerwatch/erigon-lib/types/ssz"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/require"
"gopkg.in/yaml.v2"
)
@@ -59,6 +64,24 @@ func getSSZStaticConsensusTest[T unmarshalerMarshalerHashable](ref T) spectest.H
haveEncoded, err := object.EncodeSSZ(nil)
require.NoError(t, err)
require.EqualValues(t, haveEncoded, encoded)
+ // Now let it do the encoding in snapshot format
+ if blk, ok := object.(*cltypes.SignedBeaconBlock); ok {
+ var b bytes.Buffer
+ require.NoError(t, snapshot_format.WriteBlockForSnapshot(blk, &b))
+ var br snapshot_format.MockBlockReader
+ if blk.Version() >= clparams.BellatrixVersion {
+ br = snapshot_format.MockBlockReader{Block: blk.Block.Body.ExecutionPayload}
+
+ }
+
+ blk2, err := snapshot_format.ReadBlockFromSnapshot(&b, &br, &clparams.MainnetBeaconConfig)
+ require.NoError(t, err)
+
+ haveRoot, err := blk2.HashSSZ()
+ require.NoError(t, err)
+ require.EqualValues(t, expectedRoot, haveRoot)
+ }
+
return nil
})
}
diff --git a/cl/spectest/consensus_tests/transition.go b/cl/spectest/consensus_tests/transition.go
index 105ab477fb9..8a6ac6cac78 100644
--- a/cl/spectest/consensus_tests/transition.go
+++ b/cl/spectest/consensus_tests/transition.go
@@ -3,12 +3,12 @@ package consensus_tests
import (
"fmt"
"github.com/ledgerwatch/erigon/cl/transition/machine"
+ "github.com/ledgerwatch/erigon/spectest"
"io/fs"
"testing"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/spectest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
diff --git a/cl/spectest/tests_test.go b/cl/spectest/tests_test.go
index db4fe28c987..a556ae7b03e 100644
--- a/cl/spectest/tests_test.go
+++ b/cl/spectest/tests_test.go
@@ -4,11 +4,11 @@ import (
"os"
"testing"
+ "github.com/ledgerwatch/erigon/spectest"
+
"github.com/ledgerwatch/erigon/cl/transition"
"github.com/ledgerwatch/erigon/cl/spectest/consensus_tests"
-
- "github.com/ledgerwatch/erigon/spectest"
)
func Test(t *testing.T) {
diff --git a/cl/transition/impl/eth2/operations.go b/cl/transition/impl/eth2/operations.go
index fa1b2a95171..f063470b57d 100644
--- a/cl/transition/impl/eth2/operations.go
+++ b/cl/transition/impl/eth2/operations.go
@@ -7,8 +7,8 @@ import (
"reflect"
"time"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"github.com/ledgerwatch/erigon/cl/abstract"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange"
"golang.org/x/exp/slices"
@@ -842,7 +842,7 @@ func (I *impl) ProcessSlots(s abstract.BeaconState, slot uint64) error {
beaconConfig := s.BeaconConfig()
sSlot := s.Slot()
if slot <= sSlot {
- return fmt.Errorf("new slot: %d not greater than s slot: %d", slot, sSlot)
+ return fmt.Errorf("new slot: %d not greater than current slot: %d", slot, sSlot)
}
// Process each slot.
for i := sSlot; i < slot; i++ {
diff --git a/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go b/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go
index a7f4b62fe5f..79f646e1c19 100644
--- a/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go
+++ b/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go
@@ -2,13 +2,13 @@ package statechange_test
import (
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange"
"testing"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
- "github.com/ledgerwatch/erigon/common"
"github.com/stretchr/testify/require"
)
diff --git a/cl/transition/machine/block.go b/cl/transition/machine/block.go
index c98beb32388..1bfaa452a52 100644
--- a/cl/transition/machine/block.go
+++ b/cl/transition/machine/block.go
@@ -4,8 +4,8 @@ import (
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"github.com/ledgerwatch/erigon/cl/abstract"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
diff --git a/cl/utils/bytes_test.go b/cl/utils/bytes_test.go
index d9f15a76124..9b61947b7f7 100644
--- a/cl/utils/bytes_test.go
+++ b/cl/utils/bytes_test.go
@@ -1,11 +1,11 @@
package utils_test
import (
+ "github.com/ledgerwatch/erigon-lib/common"
"testing"
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/utils"
- "github.com/ledgerwatch/erigon/common"
"github.com/stretchr/testify/require"
)
diff --git a/cmd/capcli/cli.go b/cmd/capcli/cli.go
index f7ad42d359f..cfd04bb9426 100644
--- a/cmd/capcli/cli.go
+++ b/cmd/capcli/cli.go
@@ -2,23 +2,55 @@ package main
import (
"context"
- "database/sql"
"fmt"
+ "math"
"strings"
"time"
- "github.com/jedib0t/go-pretty/v6/progress"
- "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
+ "github.com/ledgerwatch/erigon/turbo/debug"
+
+ lg "github.com/anacrolix/log"
+ "github.com/ledgerwatch/erigon-lib/direct"
+ downloader3 "github.com/ledgerwatch/erigon-lib/downloader"
+ "github.com/ledgerwatch/erigon-lib/metrics"
+ state2 "github.com/ledgerwatch/erigon-lib/state"
+
+ "github.com/c2h5oh/datasize"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
+ libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/downloader"
+
"github.com/ledgerwatch/erigon/cl/abstract"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
+ persistence2 "github.com/ledgerwatch/erigon/cl/persistence"
+ "github.com/ledgerwatch/erigon/cmd/caplin/caplin1"
+ "github.com/ledgerwatch/erigon/eth/ethconfig"
+ "github.com/ledgerwatch/erigon/params"
+ "github.com/ledgerwatch/erigon/turbo/snapshotsync"
+ "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks"
+
+ "github.com/ledgerwatch/erigon-lib/common/datadir"
+ "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg"
+ "github.com/ledgerwatch/erigon-lib/downloader/snaptype"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon-lib/kv/mdbx"
"github.com/ledgerwatch/erigon/cl/persistence"
+ "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies"
+ "github.com/ledgerwatch/erigon/cl/persistence/db_config"
+ "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format"
+ "github.com/ledgerwatch/erigon/cl/phase1/core"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
+ "github.com/ledgerwatch/erigon/cl/phase1/network"
+ "github.com/ledgerwatch/erigon/cl/phase1/stages"
"github.com/ledgerwatch/erigon/cl/rpc"
"github.com/ledgerwatch/erigon/cl/sentinel/peers"
"github.com/ledgerwatch/erigon/cl/transition/impl/eth2"
"github.com/ledgerwatch/erigon/cl/transition/machine"
"github.com/ledgerwatch/erigon/cl/utils"
+
+ "github.com/jedib0t/go-pretty/v6/progress"
+ "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
"github.com/ledgerwatch/log/v3"
"github.com/spf13/afero"
"golang.org/x/sync/errgroup"
@@ -30,6 +62,12 @@ var CLI struct {
Blocks Blocks `cmd:"" help:"download blocks from reqresp network"`
Epochs Epochs `cmd:"" help:"download epochs from reqresp network"`
+
+ Chain Chain `cmd:"" help:"download the entire chain from reqresp network"`
+ DumpSnapshots DumpSnapshots `cmd:"" help:"generate caplin snapshots"`
+ CheckSnapshots CheckSnapshots `cmd:"" help:"check snapshot folder against content of chain data"`
+ DownloadSnapshots DownloadSnapshots `cmd:"" help:"download snapshots from webseed"`
+ LoopSnapshots LoopSnapshots `cmd:"" help:"loop over snapshots"`
}
type chainCfg struct {
@@ -49,8 +87,19 @@ type withSentinel struct {
Sentinel string `help:"sentinel url" default:"localhost:7777"`
}
+type withPPROF struct {
+ Pprof bool `help:"enable pprof" default:"false"`
+}
+
+func (w *withPPROF) withProfile() {
+ if w.Pprof {
+ debug.StartPProf("localhost:6060", metrics.Setup("localhost:6060", log.Root()))
+ }
+}
+
func (w *withSentinel) connectSentinel() (sentinel.SentinelClient, error) {
- gconn, err := grpc.Dial(w.Sentinel, grpc.WithInsecure())
+ // YOLO message size
+ gconn, err := grpc.Dial(w.Sentinel, grpc.WithInsecure(), grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(math.MaxInt)))
if err != nil {
return nil, err
}
@@ -103,20 +152,20 @@ func (b *Blocks) Run(ctx *Context) error {
return err
}
- sqlDB, err := sql.Open("sqlite", "caplin/db")
+ db := mdbx.MustOpen("caplin/db")
if err != nil {
return err
}
- defer sqlDB.Close()
+ defer db.Close()
- tx, err := sqlDB.Begin()
+ tx, err := db.BeginRw(ctx)
if err != nil {
return err
}
defer tx.Rollback()
- beaconDB := persistence.NewBeaconChainDatabaseFilesystem(persistence.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig)
+ beaconDB := persistence2.NewBeaconChainDatabaseFilesystem(persistence2.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig)
for _, vv := range resp {
- err := beaconDB.WriteBlock(tx, ctx, vv, true)
+ err := beaconDB.WriteBlock(ctx, tx, vv, true)
if err != nil {
return err
}
@@ -150,15 +199,11 @@ func (b *Epochs) Run(cctx *Context) error {
if err != nil {
return err
}
- sqlDB, err := sql.Open("sqlite", "caplin/db")
- if err != nil {
- return err
- }
- defer sqlDB.Close()
+
beaconDB := persistence.NewBeaconChainDatabaseFilesystem(persistence.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig)
beacon := rpc.NewBeaconRpcP2P(ctx, s, beaconConfig, genesisConfig)
- rpcSource := persistence.NewBeaconRpcSource(beacon)
+ rpcSource := persistence2.NewBeaconRpcSource(beacon)
err = beacon.SetStatus(
genesisConfig.GenesisValidatorRoot,
@@ -207,7 +252,13 @@ func (b *Epochs) Run(cctx *Context) error {
egg.SetLimit(b.Concurrency)
- tx, err := sqlDB.Begin()
+ db := mdbx.MustOpen("caplin/db")
+ if err != nil {
+ return err
+ }
+ defer db.Close()
+
+ tx, err := db.BeginRw(ctx)
if err != nil {
return err
}
@@ -216,19 +267,19 @@ func (b *Epochs) Run(cctx *Context) error {
for i := b.FromEpoch; i <= b.ToEpoch; i = i + 1 {
ii := i
egg.Go(func() error {
- var blocks []*peers.PeeredObject[*cltypes.SignedBeaconBlock]
+ var blocks *peers.PeeredObject[[]*cltypes.SignedBeaconBlock]
for {
- blocks, err = rpcSource.GetRange(tx, ctx, uint64(ii)*beaconConfig.SlotsPerEpoch, beaconConfig.SlotsPerEpoch)
+ blocks, err = rpcSource.GetRange(ctx, tx, uint64(ii)*beaconConfig.SlotsPerEpoch, beaconConfig.SlotsPerEpoch)
if err != nil {
log.Error("dl error", "err", err, "epoch", ii)
} else {
break
}
}
- for _, v := range blocks {
+ for _, v := range blocks.Data {
tk.Increment(1)
_, _ = beaconDB, v
- err := beaconDB.WriteBlock(tx, ctx, v.Data, true)
+ err := beaconDB.WriteBlock(ctx, tx, v, true)
if err != nil {
return err
}
@@ -316,3 +367,291 @@ func (m *Migrate) Run(ctx *Context) error {
}
return nil
}
+
+type Chain struct {
+ chainCfg
+ withSentinel
+ outputFolder
+}
+
+func (c *Chain) Run(ctx *Context) error {
+ s, err := c.withSentinel.connectSentinel()
+ if err != nil {
+ return err
+ }
+
+ genesisConfig, _, beaconConfig, networkType, err := clparams.GetConfigsByNetworkName(c.Chain)
+ if err != nil {
+ return err
+ }
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler))
+ log.Info("Started chain download", "chain", c.Chain)
+
+ dirs := datadir.New(c.Datadir)
+
+ rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory)
+ beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false)
+ if err != nil {
+ return err
+ }
+ defer db.Close()
+
+ beacon := rpc.NewBeaconRpcP2P(ctx, s, beaconConfig, genesisConfig)
+
+ bs, err := core.RetrieveBeaconState(ctx, beaconConfig, genesisConfig, clparams.GetCheckpointSyncEndpoint(networkType))
+ if err != nil {
+ return err
+ }
+
+ bRoot, err := bs.BlockRoot()
+ if err != nil {
+ return err
+ }
+
+ if err := db.Update(ctx, func(tx kv.RwTx) error {
+ return beacon_indicies.WriteHighestFinalized(tx, bs.Slot())
+ }); err != nil {
+ return err
+ }
+
+ err = beacon.SetStatus(
+ genesisConfig.GenesisValidatorRoot,
+ beaconConfig.GenesisEpoch,
+ genesisConfig.GenesisValidatorRoot,
+ beaconConfig.GenesisSlot)
+ if err != nil {
+ return err
+ }
+ downloader := network.NewBackwardBeaconDownloader(ctx, beacon)
+ cfg := stages.StageHistoryReconstruction(downloader, beaconDB, db, nil, genesisConfig, beaconConfig, db_config.DatabaseConfiguration{
+ PruneDepth: math.MaxUint64,
+ }, bRoot, bs.Slot(), "/tmp", log.Root())
+ return stages.SpawnStageHistoryDownload(cfg, ctx, log.Root())
+}
+
+type DumpSnapshots struct {
+ chainCfg
+ outputFolder
+}
+
+func (c *DumpSnapshots) Run(ctx *Context) error {
+ _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain)
+ if err != nil {
+ return err
+ }
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler))
+ log.Info("Started chain download", "chain", c.Chain)
+
+ dirs := datadir.New(c.Datadir)
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler))
+
+ rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory)
+ beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false)
+ if err != nil {
+ return err
+ }
+ var to uint64
+ db.View(ctx, func(tx kv.Tx) (err error) {
+ to, err = beacon_indicies.ReadHighestFinalized(tx)
+ return
+ })
+
+ return freezeblocks.DumpBeaconBlocks(ctx, db, beaconDB, 0, to, snaptype.Erigon2MergeLimit, dirs.Tmp, dirs.Snap, 8, log.LvlInfo, log.Root())
+}
+
+type CheckSnapshots struct {
+ chainCfg
+ outputFolder
+ withPPROF
+
+ Slot uint64 `name:"slot" help:"slot to check"`
+}
+
+func (c *CheckSnapshots) Run(ctx *Context) error {
+ _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain)
+ if err != nil {
+ return err
+ }
+ c.withProfile()
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler))
+ log.Info("Started the checking process", "chain", c.Chain)
+ dirs := datadir.New(c.Datadir)
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler))
+
+ rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory)
+ beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false)
+ if err != nil {
+ return err
+ }
+ var to uint64
+ tx, err := db.BeginRo(ctx)
+ if err != nil {
+ return err
+ }
+ defer tx.Rollback()
+
+ to, err = beacon_indicies.ReadHighestFinalized(tx)
+ if err != nil {
+ return err
+ }
+
+ to = (to / snaptype.Erigon2MergeLimit) * snaptype.Erigon2MergeLimit
+
+ csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root())
+ if err := csn.ReopenFolder(); err != nil {
+ return err
+ }
+
+ br := &snapshot_format.MockBlockReader{}
+ snReader := freezeblocks.NewBeaconSnapshotReader(csn, br, beaconConfig)
+ for i := c.Slot; i < to; i++ {
+ // Read the original canonical slot
+ data, err := beaconDB.GetBlock(ctx, tx, i)
+ if err != nil {
+ return err
+ }
+ if data == nil {
+ continue
+ }
+ blk := data.Data
+ if blk == nil {
+ continue
+ }
+ // first thing if the block is bellatrix update the mock block reader
+ if blk.Version() >= clparams.BellatrixVersion {
+ br.Block = blk.Block.Body.ExecutionPayload
+ }
+ blk2, err := snReader.ReadBlock(i)
+ if err != nil {
+ log.Error("Error detected in decoding snapshots", "err", err, "slot", i)
+ return nil
+ }
+ if blk2 == nil {
+ log.Error("Block not found in snapshot", "slot", i)
+ return nil
+ }
+
+ hash1, _ := blk.Block.HashSSZ()
+ hash2, _ := blk2.Block.HashSSZ()
+ if hash1 != hash2 {
+ log.Error("Mismatching blocks", "slot", i, "gotSlot", blk2.Block.Slot, "datadir", libcommon.Hash(hash1), "snapshot", libcommon.Hash(hash2))
+ return nil
+ }
+ log.Info("Successfully checked", "slot", i)
+ }
+ return nil
+}
+
+type LoopSnapshots struct {
+ chainCfg
+ outputFolder
+ withPPROF
+
+ Slot uint64 `name:"slot" help:"slot to check"`
+}
+
+func (c *LoopSnapshots) Run(ctx *Context) error {
+ c.withProfile()
+
+ _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain)
+ if err != nil {
+ return err
+ }
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler))
+ log.Info("Started the checking process", "chain", c.Chain)
+
+ dirs := datadir.New(c.Datadir)
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler))
+
+ rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory)
+ _, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false)
+ if err != nil {
+ return err
+ }
+ var to uint64
+ tx, err := db.BeginRo(ctx)
+ if err != nil {
+ return err
+ }
+ defer tx.Rollback()
+
+ to, err = beacon_indicies.ReadHighestFinalized(tx)
+ if err != nil {
+ return err
+ }
+
+ to = (to / snaptype.Erigon2MergeLimit) * snaptype.Erigon2MergeLimit
+
+ csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root())
+ if err := csn.ReopenFolder(); err != nil {
+ return err
+ }
+
+ br := &snapshot_format.MockBlockReader{}
+ snReader := freezeblocks.NewBeaconSnapshotReader(csn, br, beaconConfig)
+ start := time.Now()
+ for i := c.Slot; i < to; i++ {
+ snReader.ReadBlock(i)
+ }
+ log.Info("Successfully checked", "slot", c.Slot, "time", time.Since(start))
+ return nil
+}
+
+type DownloadSnapshots struct {
+ chainCfg
+ outputFolder
+}
+
+func (d *DownloadSnapshots) Run(ctx *Context) error {
+ webSeeds := snapcfg.KnownWebseeds[d.Chain]
+ dirs := datadir.New(d.Datadir)
+
+ _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(d.Chain)
+ if err != nil {
+ return err
+ }
+
+ rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory)
+
+ log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler))
+
+ _, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false)
+ if err != nil {
+ return err
+ }
+ tx, err := db.BeginRw(ctx)
+ if err != nil {
+ return err
+ }
+ defer tx.Rollback()
+ downloadRate, err := datasize.ParseString("16mb")
+ if err != nil {
+ return err
+ }
+
+ uploadRate, err := datasize.ParseString("0mb")
+ if err != nil {
+ return err
+ }
+ version := "erigon: " + params.VersionWithCommit(params.GitCommit)
+
+ downloaderCfg, err := downloadercfg.New(dirs, version, lg.Info, downloadRate, uploadRate, 42069, 10, 3, nil, webSeeds, d.Chain)
+ if err != nil {
+ return err
+ }
+ downloaderCfg.DownloadTorrentFilesFromWebseed = true
+ downlo, err := downloader.New(ctx, downloaderCfg, dirs, log.Root(), log.LvlInfo)
+ if err != nil {
+ return err
+ }
+ s, err := state2.NewAggregatorV3(ctx, dirs.Tmp, dirs.Tmp, 200000, db, log.Root())
+ if err != nil {
+ return err
+ }
+ downlo.MainLoopInBackground(false)
+ bittorrentServer, err := downloader3.NewGrpcServer(downlo)
+ if err != nil {
+ return fmt.Errorf("new server: %w", err)
+ }
+ return snapshotsync.WaitForDownloader("CapCliDownloader", ctx, false, snapshotsync.OnlyCaplin, s, tx, freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.NewSnapCfg(false, false, false), dirs.Snap, log.Root()), freezeblocks.NewBorRoSnapshots(ethconfig.NewSnapCfg(false, false, false), dirs.Snap, log.Root())), nil, params.ChainConfigByChainName(d.Chain), direct.NewDownloaderClient(bittorrentServer))
+}
diff --git a/cmd/caplin-regression/main.go b/cmd/caplin-regression/main.go
index 390ad2268ba..c9a6d7a9343 100644
--- a/cmd/caplin-regression/main.go
+++ b/cmd/caplin-regression/main.go
@@ -2,12 +2,12 @@ package main
import (
"flag"
+ "github.com/ledgerwatch/erigon-lib/metrics"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/erigon/turbo/debug"
- "github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
"github.com/ledgerwatch/erigon/cmd/caplin-regression/regression"
"github.com/ledgerwatch/log/v3"
"golang.org/x/exp/slices"
diff --git a/cmd/caplin-regression/regression/reader.go b/cmd/caplin-regression/regression/reader.go
index 723a82aea38..25de1965157 100644
--- a/cmd/caplin-regression/regression/reader.go
+++ b/cmd/caplin-regression/regression/reader.go
@@ -1,16 +1,15 @@
package regression
import (
+ clparams2 "github.com/ledgerwatch/erigon/cl/clparams"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/phase1/core/state"
+ "github.com/ledgerwatch/erigon/cl/utils"
"io/fs"
"io/ioutil"
"path"
"path/filepath"
"sort"
-
- "github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/phase1/core/state"
- "github.com/ledgerwatch/erigon/cl/utils"
)
func (r *RegressionTester) readStartingState() (*state.CachingBeaconState, error) {
@@ -18,8 +17,8 @@ func (r *RegressionTester) readStartingState() (*state.CachingBeaconState, error
if err != nil {
return nil, err
}
- s := state.New(&clparams.MainnetBeaconConfig)
- if err := utils.DecodeSSZSnappy(s, stateFile, int(clparams.CapellaVersion)); err != nil {
+ s := state.New(&clparams2.MainnetBeaconConfig)
+ if err := utils.DecodeSSZSnappy(s, stateFile, int(clparams2.CapellaVersion)); err != nil {
return nil, err
}
return s, nil
@@ -39,7 +38,7 @@ func (r *RegressionTester) initBlocks() error {
return err
}
b := new(cltypes.SignedBeaconBlock)
- if err := utils.DecodeSSZSnappy(b, f, int(clparams.CapellaVersion)); err != nil {
+ if err := utils.DecodeSSZSnappy(b, f, int(clparams2.CapellaVersion)); err != nil {
return err
}
r.blockList = append(r.blockList, b)
diff --git a/cmd/caplin-regression/regression/tester.go b/cmd/caplin-regression/regression/tester.go
index ace5ba977eb..badaebe5413 100644
--- a/cmd/caplin-regression/regression/tester.go
+++ b/cmd/caplin-regression/regression/tester.go
@@ -5,15 +5,18 @@ import (
"runtime"
"time"
- "github.com/Giulio2002/bls"
- "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon-lib/common/dbg"
"github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/cltypes/solid"
+ solid2 "github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
"github.com/ledgerwatch/erigon/cl/pool"
+
+ "github.com/Giulio2002/bls"
+ "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/common/dbg"
+ "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph"
"github.com/ledgerwatch/log/v3"
+ "github.com/spf13/afero"
)
const (
@@ -41,13 +44,13 @@ func (r *RegressionTester) Run(name string, fn func(*forkchoice.ForkChoiceStore,
if err != nil {
return err
}
- store, err := forkchoice.NewForkChoiceStore(context.Background(), state, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), true)
+ store, err := forkchoice.NewForkChoiceStore(context.Background(), state, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), fork_graph.NewForkGraphDisk(state, afero.NewMemMapFs()))
if err != nil {
return err
}
log.Info("Loading public keys into memory")
bls.SetEnabledCaching(true)
- state.ForEachValidator(func(v solid.Validator, idx, total int) bool {
+ state.ForEachValidator(func(v solid2.Validator, idx, total int) bool {
pk := v.PublicKey()
if err := bls.LoadPublicKeyIntoCache(pk[:], false); err != nil {
panic(err)
@@ -84,7 +87,7 @@ func TestRegressionWithValidation(store *forkchoice.ForkChoiceStore, block *clty
if err := store.OnBlock(block, false, true); err != nil {
return err
}
- block.Block.Body.Attestations.Range(func(index int, value *solid.Attestation, length int) bool {
+ block.Block.Body.Attestations.Range(func(index int, value *solid2.Attestation, length int) bool {
store.OnAttestation(value, true)
return true
})
diff --git a/cmd/caplin-phase1/caplin1/run.go b/cmd/caplin/caplin1/run.go
similarity index 77%
rename from cmd/caplin-phase1/caplin1/run.go
rename to cmd/caplin/caplin1/run.go
index 6585a6a9399..6c37b0b5510 100644
--- a/cmd/caplin-phase1/caplin1/run.go
+++ b/cmd/caplin/caplin1/run.go
@@ -2,7 +2,6 @@ package caplin1
import (
"context"
- "database/sql"
"os"
"path"
"time"
@@ -11,49 +10,52 @@ import (
"github.com/ledgerwatch/erigon/cl/beacon/handler"
"github.com/ledgerwatch/erigon/cl/cltypes/solid"
"github.com/ledgerwatch/erigon/cl/freezer"
+ freezer2 "github.com/ledgerwatch/erigon/cl/freezer"
"github.com/ledgerwatch/erigon/cl/persistence"
+ persistence2 "github.com/ledgerwatch/erigon/cl/persistence"
"github.com/ledgerwatch/erigon/cl/persistence/db_config"
- "github.com/ledgerwatch/erigon/cl/persistence/sql_migrations"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
"github.com/ledgerwatch/erigon/cl/phase1/execution_client"
"github.com/ledgerwatch/erigon/cl/phase1/forkchoice"
+ "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph"
"github.com/ledgerwatch/erigon/cl/phase1/network"
"github.com/ledgerwatch/erigon/cl/phase1/stages"
"github.com/ledgerwatch/erigon/cl/pool"
+ "github.com/ledgerwatch/erigon/cl/rpc"
+ "github.com/spf13/afero"
"github.com/Giulio2002/bls"
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon-lib/kv/mdbx"
"github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/cl/rpc"
"github.com/ledgerwatch/log/v3"
)
func OpenCaplinDatabase(ctx context.Context,
databaseConfig db_config.DatabaseConfiguration,
beaconConfig *clparams.BeaconChainConfig,
- rawBeaconChain persistence.RawBeaconBlockChain,
+ rawBeaconChain persistence2.RawBeaconBlockChain,
dbPath string,
engine execution_client.ExecutionEngine,
-) (persistence.BeaconChainDatabase, *sql.DB, error) {
+ wipeout bool,
+) (persistence.BeaconChainDatabase, kv.RwDB, error) {
dataDirIndexer := path.Join(dbPath, "beacon_indicies")
- os.Remove(dataDirIndexer)
+ if wipeout {
+ os.RemoveAll(dataDirIndexer)
+ }
+
os.MkdirAll(dbPath, 0700)
- db, err := sql.Open("sqlite", dataDirIndexer)
- if err != nil {
- return nil, nil, err
- }
+ db := mdbx.MustOpen(dataDirIndexer)
- tx, err := db.BeginTx(ctx, &sql.TxOptions{ReadOnly: false})
+ tx, err := db.BeginRw(ctx)
if err != nil {
return nil, nil, err
}
defer tx.Rollback()
- if err := sql_migrations.ApplyMigrations(ctx, tx); err != nil {
- return nil, nil, err
- }
if err := db_config.WriteConfigurationIfNotExist(ctx, tx, databaseConfig); err != nil {
return nil, nil, err
}
@@ -67,15 +69,14 @@ func OpenCaplinDatabase(ctx context.Context,
db.Close() // close sql database here
}()
}
- return persistence.NewBeaconChainDatabaseFilesystem(rawBeaconChain, engine, beaconConfig), db, nil
+ return persistence2.NewBeaconChainDatabaseFilesystem(rawBeaconChain, engine, beaconConfig), db, nil
}
func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engine execution_client.ExecutionEngine,
beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, state *state.CachingBeaconState,
caplinFreezer freezer.Freezer, dirs datadir.Dirs, cfg beacon.RouterConfiguration) error {
- caplinDBPath := path.Join(dirs.CaplinIndexing, "db")
- rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, caplinDBPath)
- beaconDB, sqlDB, err := OpenCaplinDatabase(ctx, db_config.DefaultDatabaseConfiguration, beaconConfig, rawDB, dirs.CaplinHistory, engine)
+ rawDB := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory)
+ beaconDB, sqlDB, err := OpenCaplinDatabase(ctx, db_config.DefaultDatabaseConfiguration, beaconConfig, rawDB, dirs.CaplinIndexing, engine, true)
if err != nil {
return err
}
@@ -87,13 +88,21 @@ func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engi
logger := log.New("app", "caplin")
if caplinFreezer != nil {
- if err := freezer.PutObjectSSZIntoFreezer("beaconState", "caplin_core", 0, state, caplinFreezer); err != nil {
+ if err := freezer2.PutObjectSSZIntoFreezer("beaconState", "caplin_core", 0, state, caplinFreezer); err != nil {
return err
}
}
pool := pool.NewOperationsPool(beaconConfig)
- forkChoice, err := forkchoice.NewForkChoiceStore(ctx, state, engine, caplinFreezer, pool, true)
+ caplinFcuPath := path.Join(dirs.Tmp, "caplin-forkchoice")
+ os.RemoveAll(caplinFcuPath)
+ err = os.MkdirAll(caplinFcuPath, 0o755)
+ if err != nil {
+ return err
+ }
+ fcuFs := afero.NewBasePathFs(afero.NewOsFs(), caplinFcuPath)
+
+ forkChoice, err := forkchoice.NewForkChoiceStore(ctx, state, engine, caplinFreezer, pool, fork_graph.NewForkGraphDisk(state, fcuFs))
if err != nil {
logger.Error("Could not create forkchoice", "err", err)
return err
@@ -107,10 +116,9 @@ func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engi
return true
})
gossipManager := network.NewGossipReceiver(sentinel, forkChoice, beaconConfig, genesisConfig, caplinFreezer)
-
{ // start ticking forkChoice
go func() {
- tickInterval := time.NewTicker(2 * time.Millisecond)
+ tickInterval := time.NewTicker(50 * time.Millisecond)
for {
select {
case <-tickInterval.C:
@@ -150,7 +158,7 @@ func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engi
}()
}
- tx, err := sqlDB.BeginTx(ctx, &sql.TxOptions{ReadOnly: true})
+ tx, err := sqlDB.BeginRo(ctx)
if err != nil {
return err
}
diff --git a/cmd/caplin-phase1/main.go b/cmd/caplin/main.go
similarity index 85%
rename from cmd/caplin-phase1/main.go
rename to cmd/caplin/main.go
index 74f2fc76012..4988502b1f3 100644
--- a/cmd/caplin-phase1/main.go
+++ b/cmd/caplin/main.go
@@ -19,27 +19,27 @@ import (
"os"
"github.com/ledgerwatch/erigon/cl/beacon"
- "github.com/ledgerwatch/erigon/cl/freezer"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/fork"
+ freezer2 "github.com/ledgerwatch/erigon/cl/freezer"
"github.com/ledgerwatch/erigon/cl/phase1/core"
"github.com/ledgerwatch/erigon/cl/phase1/core/state"
- "github.com/ledgerwatch/erigon/cl/phase1/execution_client"
+ execution_client2 "github.com/ledgerwatch/erigon/cl/phase1/execution_client"
+ "github.com/ledgerwatch/erigon/cl/sentinel"
+ "github.com/ledgerwatch/erigon/cl/sentinel/service"
"github.com/ledgerwatch/log/v3"
"github.com/urfave/cli/v2"
- "github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/fork"
- "github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1"
+ "github.com/ledgerwatch/erigon/cmd/caplin/caplin1"
lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli"
"github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service"
- lightclientapp "github.com/ledgerwatch/erigon/turbo/app"
+ app "github.com/ledgerwatch/erigon/turbo/app"
"github.com/ledgerwatch/erigon/turbo/debug"
)
func main() {
- app := lightclientapp.MakeApp("caplin-phase1", runCaplinNode, flags.CLDefaultFlags)
+ app := app.MakeApp("caplin", runCaplinNode, flags.CLDefaultFlags)
if err := app.Run(os.Args); err != nil {
_, printErr := fmt.Fprintln(os.Stderr, err)
if printErr != nil {
@@ -104,9 +104,9 @@ func runCaplinNode(cliCtx *cli.Context) error {
log.Error("[Checkpoint Sync] Failed", "reason", err)
return err
}
- var executionEngine execution_client.ExecutionEngine
+ var executionEngine execution_client2.ExecutionEngine
if cfg.RunEngineAPI {
- cc, err := execution_client.NewExecutionClientRPC(ctx, cfg.JwtSecret, cfg.EngineAPIAddr, cfg.EngineAPIPort)
+ cc, err := execution_client2.NewExecutionClientRPC(ctx, cfg.JwtSecret, cfg.EngineAPIAddr, cfg.EngineAPIPort)
if err != nil {
log.Error("could not start engine api", "err", err)
}
@@ -114,9 +114,9 @@ func runCaplinNode(cliCtx *cli.Context) error {
executionEngine = cc
}
- var caplinFreezer freezer.Freezer
+ var caplinFreezer freezer2.Freezer
if cfg.RecordMode {
- caplinFreezer = &freezer.RootPathOsFs{
+ caplinFreezer = &freezer2.RootPathOsFs{
Root: cfg.RecordDir,
}
}
diff --git a/cmd/devnet/README.md b/cmd/devnet/README.md
index 74ddc735e4a..cd281a53a99 100644
--- a/cmd/devnet/README.md
+++ b/cmd/devnet/README.md
@@ -9,7 +9,7 @@ The devnet code performs 3 main functions:
* It allows for the specification of a series of scenarios which will be run against the nodes on that internal network
* It can optionally run a `support` connection which allows the nodes on the network to be connected to the Erigon diagnostic system
-The specification of both nodes and scenarios for the devenet is done by specifying configuraion objects. These objects are currently build in code using go `structs` but are cabable of being read as configuration.
+The specification of both nodes and scenarios for the devenet is done by specifying configuration objects. These objects are currently build in code using go `structs` but are capable of being read as configuration.
## Devnet runtime start-up
@@ -28,7 +28,7 @@ The devnet runs as a single `go` process which can be started with the following
## Network Configuration
-Networks configurations are currently specified in code in `main.go` in the `selectNetwork` function. This contains a series of `structs` with the following structue, for eample:
+Networks configurations are currently specified in code in `main.go` in the `selectNetwork` function. This contains a series of `structs` with the following structure, for example:
```go
return &devnet.Network{
@@ -55,11 +55,11 @@ Networks configurations are currently specified in code in `main.go` in the `sel
}, nil
```
-Base IP's and addresses are iterated for each node in the network - to ensure that when the network starts there are no port clashes as the entire nework operates in a single process, hence shares a common host. Individual nodes will be configured with a default set of command line arguments dependent on type. To see the default arguments per node look at the `args\node.go` file where these are specified as tags on the struct members.
+Base IP's and addresses are iterated for each node in the network - to ensure that when the network starts there are no port clashes as the entire network operates in a single process, hence shares a common host. Individual nodes will be configured with a default set of command line arguments dependent on type. To see the default arguments per node look at the `args\node.go` file where these are specified as tags on the struct members.
## Scenario Configuration
-Scenarios are similarly specified in code in `main.go` in the `action` function. This is the initial configration:
+Scenarios are similarly specified in code in `main.go` in the `action` function. This is the initial configuration:
```go
scenarios.Scenario{
@@ -74,9 +74,9 @@ Scenarios are similarly specified in code in `main.go` in the `action` function.
})
```
-Scenarios are created a groups of steps which are created by regestering a `step` handler too see an example of this take a look at the `commands\ping.go` file which adds a ping rpc method (see `PingErigonRpc` above).
+Scenarios are created a groups of steps which are created by registering a `step` handler too see an example of this take a look at the `commands\ping.go` file which adds a ping rpc method (see `PingErigonRpc` above).
-This illustrates the registratio process. The `init` function in the file registers the method with the `scenarios` package - which uses the function name as the default step name. Others can be added with additional string arguments fo the `StepHandler` call where they will treated as regular expressions to be matched when processing scenario steps.
+This illustrates the registration process. The `init` function in the file registers the method with the `scenarios` package - which uses the function name as the default step name. Others can be added with additional string arguments fo the `StepHandler` call where they will treated as regular expressions to be matched when processing scenario steps.
```go
func init() {
diff --git a/cmd/devnet/accounts/accounts.go b/cmd/devnet/accounts/accounts.go
index 032cebdc616..097ca74daf5 100644
--- a/cmd/devnet/accounts/accounts.go
+++ b/cmd/devnet/accounts/accounts.go
@@ -20,6 +20,14 @@ func init() {
core.DevnetSignKey = func(addr libcommon.Address) *ecdsa.PrivateKey {
return SigKey(addr)
}
+
+ devnetEtherbaseAccount := &Account{
+ "DevnetEtherbase",
+ core.DevnetEtherbase,
+ core.DevnetSignPrivateKey,
+ }
+ accountsByAddress[core.DevnetEtherbase] = devnetEtherbaseAccount
+ accountsByName[devnetEtherbaseAccount.Name] = devnetEtherbaseAccount
}
var accountsByAddress = map[libcommon.Address]*Account{}
diff --git a/cmd/devnet/args/node.go b/cmd/devnet/args/node_args.go
similarity index 75%
rename from cmd/devnet/args/node.go
rename to cmd/devnet/args/node_args.go
index e3e348e5226..9684d11c899 100644
--- a/cmd/devnet/args/node.go
+++ b/cmd/devnet/args/node_args.go
@@ -1,18 +1,24 @@
package args
import (
+ "crypto/ecdsa"
+ "encoding/hex"
"fmt"
+ "github.com/ledgerwatch/erigon/core"
+ "github.com/ledgerwatch/erigon/crypto"
+ "github.com/ledgerwatch/erigon/p2p/enode"
+ "github.com/ledgerwatch/erigon/params"
"math/big"
"net"
"path/filepath"
"strconv"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
"github.com/ledgerwatch/erigon/cmd/devnet/accounts"
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
- "github.com/ledgerwatch/erigon/params/networkname"
)
-type Node struct {
+type NodeArgs struct {
requests.RequestGenerator `arg:"-"`
Name string `arg:"-"`
BuildDir string `arg:"positional" default:"./build/bin/devnet" json:"builddir"`
@@ -44,11 +50,14 @@ type Node struct {
StaticPeers string `arg:"--staticpeers" json:"staticpeers,omitempty"`
WithoutHeimdall bool `arg:"--bor.withoutheimdall" flag:"" default:"false" json:"bor.withoutheimdall,omitempty"`
HeimdallGRpc string `arg:"--bor.heimdallgRPC" json:"bor.heimdallgRPC,omitempty"`
+ WithHeimdallMilestones bool `arg:"--bor.milestone" json:"bor.milestone"`
VMDebug bool `arg:"--vmdebug" flag:"" default:"false" json:"dmdebug"`
-}
-func (node *Node) configure(base Node, nodeNumber int) error {
+ NodeKey *ecdsa.PrivateKey `arg:"-"`
+ NodeKeyHex string `arg:"--nodekeyhex" json:"nodekeyhex,omitempty"`
+}
+func (node *NodeArgs) Configure(base NodeArgs, nodeNumber int) error {
if len(node.Name) == 0 {
node.Name = fmt.Sprintf("%s-%d", base.Chain, nodeNumber)
}
@@ -62,14 +71,19 @@ func (node *Node) configure(base Node, nodeNumber int) error {
node.StaticPeers = base.StaticPeers
+ var err error
+ node.NodeKey, err = crypto.GenerateKey()
+ if err != nil {
+ return err
+ }
+ node.NodeKeyHex = hex.EncodeToString(crypto.FromECDSA(node.NodeKey))
+
node.Metrics = base.Metrics
node.MetricsPort = base.MetricsPort
node.MetricsAddr = base.MetricsAddr
node.Snapshots = base.Snapshots
- var err error
-
node.PrivateApiAddr, _, err = portFromBase(base.PrivateApiAddr, nodeNumber, 1)
if err != nil {
@@ -86,15 +100,34 @@ func (node *Node) configure(base Node, nodeNumber int) error {
node.Port = base.Port + nodeNumber
+ node.WithHeimdallMilestones = base.WithHeimdallMilestones
+
return nil
}
-func (node Node) ChainID() *big.Int {
- return &big.Int{}
+func (node *NodeArgs) GetName() string {
+ return node.Name
+}
+
+func (node *NodeArgs) ChainID() *big.Int {
+ config := params.ChainConfigByChainName(node.Chain)
+ if config == nil {
+ return nil
+ }
+ return config.ChainID
+}
+
+func (node *NodeArgs) GetHttpPort() int {
+ return node.HttpPort
+}
+
+func (node *NodeArgs) GetEnodeURL() string {
+ port := node.Port
+ return enode.NewV4(&node.NodeKey.PublicKey, net.ParseIP("127.0.0.1"), port, port).URLv4()
}
type BlockProducer struct {
- Node
+ NodeArgs
Mine bool `arg:"--mine" flag:"true"`
Etherbase string `arg:"--miner.etherbase"`
DevPeriod int `arg:"--dev.period"`
@@ -105,11 +138,10 @@ type BlockProducer struct {
account *accounts.Account
}
-func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{}, error) {
- err := m.configure(baseNode, nodeNumber)
-
+func (m *BlockProducer) Configure(baseNode NodeArgs, nodeNumber int) error {
+ err := m.NodeArgs.Configure(baseNode, nodeNumber)
if err != nil {
- return -1, nil, err
+ return err
}
switch m.Chain {
@@ -117,10 +149,12 @@ func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{
if m.DevPeriod == 0 {
m.DevPeriod = 30
}
- m.account = accounts.NewAccount(m.Name() + "-etherbase")
+ m.account = accounts.NewAccount(m.GetName() + "-etherbase")
+ core.DevnetEtherbase = m.account.Address
+ core.DevnetSignPrivateKey = m.account.SigKey()
case networkname.BorDevnetChainName:
- m.account = accounts.NewAccount(m.Name() + "-etherbase")
+ m.account = accounts.NewAccount(m.GetName() + "-etherbase")
if len(m.HttpApi) == 0 {
m.HttpApi = "admin,eth,erigon,web3,net,debug,trace,txpool,parity,ots,bor"
@@ -131,47 +165,29 @@ func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{
m.Etherbase = m.account.Address.Hex()
}
- return m.HttpPort, m, nil
-}
-
-func (n BlockProducer) Name() string {
- return n.Node.Name
+ return nil
}
-func (n BlockProducer) Account() *accounts.Account {
+func (n *BlockProducer) Account() *accounts.Account {
return n.account
}
-func (n BlockProducer) IsBlockProducer() bool {
+func (n *BlockProducer) IsBlockProducer() bool {
return true
}
type NonBlockProducer struct {
- Node
+ NodeArgs
HttpApi string `arg:"--http.api" default:"admin,eth,debug,net,trace,web3,erigon,txpool" json:"http.api"`
TorrentPort string `arg:"--torrent.port" default:"42070" json:"torrent.port"`
NoDiscover string `arg:"--nodiscover" flag:"" default:"true" json:"nodiscover"`
}
-func (n NonBlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{}, error) {
- err := n.configure(baseNode, nodeNumber)
-
- if err != nil {
- return -1, nil, err
- }
-
- return n.HttpPort, n, nil
-}
-
-func (n NonBlockProducer) Name() string {
- return n.Node.Name
-}
-
-func (n NonBlockProducer) IsBlockProducer() bool {
+func (n *NonBlockProducer) IsBlockProducer() bool {
return false
}
-func (n NonBlockProducer) Account() *accounts.Account {
+func (n *NonBlockProducer) Account() *accounts.Account {
return nil
}
diff --git a/cmd/devnet/args/node_test.go b/cmd/devnet/args/node_args_test.go
similarity index 89%
rename from cmd/devnet/args/node_test.go
rename to cmd/devnet/args/node_args_test.go
index ddd7de4c8c9..a67370b19ea 100644
--- a/cmd/devnet/args/node_test.go
+++ b/cmd/devnet/args/node_args_test.go
@@ -13,7 +13,7 @@ func TestNodeArgs(t *testing.T) {
asMap := map[string]struct{}{}
nodeArgs, _ := args.AsArgs(args.BlockProducer{
- Node: args.Node{
+ NodeArgs: args.NodeArgs{
DataDir: filepath.Join("data", fmt.Sprintf("%d", 1)),
PrivateApiAddr: "localhost:9092",
},
@@ -37,7 +37,7 @@ func TestNodeArgs(t *testing.T) {
}
nodeArgs, _ = args.AsArgs(args.NonBlockProducer{
- Node: args.Node{
+ NodeArgs: args.NodeArgs{
DataDir: filepath.Join("data", fmt.Sprintf("%d", 2)),
StaticPeers: "enode",
PrivateApiAddr: "localhost:9091",
@@ -162,8 +162,26 @@ func producingNodeArgs(dataDir string, nodeNumber int) []string {
authrpcPortArg, _ := parameterFromArgument("--authrpc.port", "8551")
natArg, _ := parameterFromArgument("--nat", "none")
accountSlotsArg, _ := parameterFromArgument("--txpool.accountslots", "16")
-
- return []string{buildDirArg, dataDirArg, chainType, privateApiAddr, httpPortArg, authrpcPortArg, mine, httpApi, ws, natArg, devPeriod, consoleVerbosity, p2pProtocol, downloaderArg, accountSlotsArg}
+ withHeimdallMilestonesArg, _ := parameterFromArgument("--bor.milestone", "false")
+
+ return []string{
+ buildDirArg,
+ dataDirArg,
+ chainType,
+ privateApiAddr,
+ httpPortArg,
+ authrpcPortArg,
+ mine,
+ httpApi,
+ ws,
+ natArg,
+ devPeriod,
+ consoleVerbosity,
+ p2pProtocol,
+ downloaderArg,
+ accountSlotsArg,
+ withHeimdallMilestonesArg,
+ }
}
// nonMiningNodeArgs returns custom args for starting a non-mining node
@@ -182,6 +200,24 @@ func nonProducingNodeArgs(dataDir string, nodeNumber int, enode string) []string
authrpcPortArg, _ := parameterFromArgument("--authrpc.port", "8551")
natArg, _ := parameterFromArgument("--nat", "none")
ws := wsArg
-
- return []string{buildDirArg, dataDirArg, chainType, privateApiAddr, httpPortArg, authrpcPortArg, httpApi, ws, natArg, staticPeers, noDiscover, consoleVerbosity, torrentPort, p2pProtocol, downloaderArg}
+ withHeimdallMilestonesArg, _ := parameterFromArgument("--bor.milestone", "false")
+
+ return []string{
+ buildDirArg,
+ dataDirArg,
+ chainType,
+ privateApiAddr,
+ httpPortArg,
+ authrpcPortArg,
+ httpApi,
+ ws,
+ natArg,
+ staticPeers,
+ noDiscover,
+ consoleVerbosity,
+ torrentPort,
+ p2pProtocol,
+ downloaderArg,
+ withHeimdallMilestonesArg,
+ }
}
diff --git a/cmd/devnet/contracts/backend.go b/cmd/devnet/contracts/backend.go
index fc9e7237519..98c6e71281c 100644
--- a/cmd/devnet/contracts/backend.go
+++ b/cmd/devnet/contracts/backend.go
@@ -3,6 +3,7 @@ package contracts
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
ethereum "github.com/ledgerwatch/erigon"
@@ -10,7 +11,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon/accounts/abi/bind"
"github.com/ledgerwatch/erigon/cmd/devnet/devnet"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
diff --git a/cmd/devnet/contracts/steps/l1l2transfers.go b/cmd/devnet/contracts/steps/l1l2transfers.go
index c002c61c956..74cb162a02f 100644
--- a/cmd/devnet/contracts/steps/l1l2transfers.go
+++ b/cmd/devnet/contracts/steps/l1l2transfers.go
@@ -8,6 +8,7 @@ import (
"math"
"math/big"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/accounts/abi"
"github.com/ledgerwatch/erigon/accounts/abi/bind"
@@ -18,7 +19,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/cmd/devnet/scenarios"
"github.com/ledgerwatch/erigon/cmd/devnet/services"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
)
diff --git a/cmd/devnet/contracts/steps/l2l1transfers.go b/cmd/devnet/contracts/steps/l2l1transfers.go
index b7b04efe35e..59481c8d022 100644
--- a/cmd/devnet/contracts/steps/l2l1transfers.go
+++ b/cmd/devnet/contracts/steps/l2l1transfers.go
@@ -6,6 +6,7 @@ import (
"fmt"
"math/big"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/accounts/abi"
"github.com/ledgerwatch/erigon/accounts/abi/bind"
@@ -16,7 +17,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/cmd/devnet/scenarios"
"github.com/ledgerwatch/erigon/cmd/devnet/services"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
)
diff --git a/cmd/devnet/contracts/steps/subscriber.go b/cmd/devnet/contracts/steps/subscriber.go
index b9900f28573..00322c95539 100644
--- a/cmd/devnet/contracts/steps/subscriber.go
+++ b/cmd/devnet/contracts/steps/subscriber.go
@@ -3,6 +3,7 @@ package contracts_steps
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
ethereum "github.com/ledgerwatch/erigon"
@@ -18,7 +19,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/cmd/devnet/scenarios"
"github.com/ledgerwatch/erigon/cmd/devnet/transactions"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/cmd/devnet/devnet/context.go b/cmd/devnet/devnet/context.go
index 002567e22dd..97348746e75 100644
--- a/cmd/devnet/devnet/context.go
+++ b/cmd/devnet/devnet/context.go
@@ -151,7 +151,7 @@ func CurrentNetwork(ctx context.Context) *Network {
}
if current := CurrentNode(ctx); current != nil {
- if n, ok := current.(*node); ok {
+ if n, ok := current.(*devnetNode); ok {
return n.network
}
}
diff --git a/cmd/devnet/devnet/network.go b/cmd/devnet/devnet/network.go
index 701b71f763d..2f6e948d827 100644
--- a/cmd/devnet/devnet/network.go
+++ b/cmd/devnet/devnet/network.go
@@ -2,11 +2,9 @@ package devnet
import (
"context"
- "errors"
"fmt"
+ "github.com/ledgerwatch/erigon/cmd/utils"
"math/big"
- "net"
- "net/url"
"os"
"reflect"
"strings"
@@ -15,7 +13,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/dbg"
"github.com/ledgerwatch/erigon/cmd/devnet/args"
- "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils"
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/params"
@@ -40,6 +37,7 @@ type Network struct {
BorStateSyncDelay time.Duration
BorPeriod time.Duration
BorMinBlockSize int
+ BorWithMilestones *bool
wg sync.WaitGroup
peers []string
namedNodes map[string]Node
@@ -55,11 +53,6 @@ func (nw *Network) ChainID() *big.Int {
// Start starts the process for multiple erigon nodes running on the dev chain
func (nw *Network) Start(ctx context.Context) error {
-
- type configurable interface {
- Configure(baseNode args.Node, nodeNumber int) (int, interface{}, error)
- }
-
for _, service := range nw.Services {
if err := service.Start(ctx); err != nil {
nw.Stop()
@@ -67,7 +60,7 @@ func (nw *Network) Start(ctx context.Context) error {
}
}
- baseNode := args.Node{
+ baseNode := args.NodeArgs{
DataDir: nw.DataDir,
Chain: nw.Chain,
Port: nw.BasePort,
@@ -76,35 +69,42 @@ func (nw *Network) Start(ctx context.Context) error {
Snapshots: nw.Snapshots,
}
+ if nw.BorWithMilestones != nil {
+ baseNode.WithHeimdallMilestones = *nw.BorWithMilestones
+ } else {
+ baseNode.WithHeimdallMilestones = utils.WithHeimdallMilestones.Value
+ }
+
cliCtx := CliContext(ctx)
metricsEnabled := cliCtx.Bool("metrics")
metricsNode := cliCtx.Int("metrics.node")
nw.namedNodes = map[string]Node{}
- for i, node := range nw.Nodes {
- if configurable, ok := node.(configurable); ok {
-
+ for i, nodeArgs := range nw.Nodes {
+ {
base := baseNode
-
if metricsEnabled && metricsNode == i {
base.Metrics = true
base.MetricsPort = cliCtx.Int("metrics.port")
}
+ base.StaticPeers = strings.Join(nw.peers, ",")
- nodePort, args, err := configurable.Configure(base, i)
-
- if err == nil {
- node, err = nw.createNode(fmt.Sprintf("%s:%d", nw.BaseRPCHost, nodePort), args)
+ err := nodeArgs.Configure(base, i)
+ if err != nil {
+ nw.Stop()
+ return err
}
+ node, err := nw.createNode(nodeArgs)
if err != nil {
nw.Stop()
return err
}
nw.Nodes[i] = node
- nw.namedNodes[node.Name()] = node
+ nw.namedNodes[node.GetName()] = node
+ nw.peers = append(nw.peers, nodeArgs.GetEnodeURL())
for _, service := range nw.Services {
service.NodeCreated(ctx, node)
@@ -114,7 +114,6 @@ func (nw *Network) Start(ctx context.Context) error {
for _, node := range nw.Nodes {
err := nw.startNode(node)
-
if err != nil {
nw.Stop()
return err
@@ -123,25 +122,6 @@ func (nw *Network) Start(ctx context.Context) error {
for _, service := range nw.Services {
service.NodeStarted(ctx, node)
}
-
- // get the enode of the node
- // - note this has the side effect of waiting for the node to start
- enode, err := getEnode(node)
-
- if err != nil {
- if errors.Is(err, devnetutils.ErrInvalidEnodeString) {
- continue
- }
-
- nw.Stop()
- return err
- }
-
- nw.peers = append(nw.peers, enode)
-
- // TODO do we need to call AddPeer to the nodes to make them aware of this one
- // the current model only works for an appending node network where the peers gossip
- // connections - not sure if this is the case ?
}
return nil
@@ -149,11 +129,13 @@ func (nw *Network) Start(ctx context.Context) error {
var blockProducerFunds = (&big.Int{}).Mul(big.NewInt(1000), big.NewInt(params.Ether))
-func (nw *Network) createNode(nodeAddr string, cfg interface{}) (Node, error) {
- n := &node{
+func (nw *Network) createNode(nodeArgs Node) (Node, error) {
+ nodeAddr := fmt.Sprintf("%s:%d", nw.BaseRPCHost, nodeArgs.GetHttpPort())
+
+ n := &devnetNode{
sync.Mutex{},
requests.NewRequestGenerator(nodeAddr, nw.Logger),
- cfg,
+ nodeArgs,
&nw.wg,
nw,
make(chan error),
@@ -198,33 +180,15 @@ func copyFlags(flags []cli.Flag) []cli.Flag {
func (nw *Network) startNode(n Node) error {
nw.wg.Add(1)
- node := n.(*node)
-
- args, err := args.AsArgs(node.args)
+ node := n.(*devnetNode)
+ args, err := args.AsArgs(node.nodeArgs)
if err != nil {
return err
}
- if len(nw.peers) > 0 {
- peersIndex := -1
-
- for i, arg := range args {
- if strings.HasPrefix(arg, "--staticpeers") {
- peersIndex = i
- break
- }
- }
-
- if peersIndex >= 0 {
- args[peersIndex] = args[peersIndex] + "," + strings.Join(nw.peers, ",")
- } else {
- args = append(args, "--staticpeers="+strings.Join(nw.peers, ","))
- }
- }
-
go func() {
- nw.Logger.Info("Running node", "name", node.Name(), "args", args)
+ nw.Logger.Info("Running node", "name", node.GetName(), "args", args)
// catch any errors and avoid panics if an error occurs
defer func() {
@@ -233,17 +197,17 @@ func (nw *Network) startNode(n Node) error {
return
}
- nw.Logger.Error("catch panic", "node", node.Name(), "err", panicResult, "stack", dbg.Stack())
+ nw.Logger.Error("catch panic", "node", node.GetName(), "err", panicResult, "stack", dbg.Stack())
nw.Stop()
os.Exit(1)
}()
// cli flags are not thread safe and assume only one copy of a flag
// variable is needed per process - which does not work here
- app := erigonapp.MakeApp(node.Name(), node.run, copyFlags(erigoncli.DefaultFlags))
+ app := erigonapp.MakeApp(node.GetName(), node.run, copyFlags(erigoncli.DefaultFlags))
if err := app.Run(args); err != nil {
- nw.Logger.Warn("App run returned error", "node", node.Name(), "err", err)
+ nw.Logger.Warn("App run returned error", "node", node.GetName(), "err", err)
}
}()
@@ -254,50 +218,6 @@ func (nw *Network) startNode(n Node) error {
return nil
}
-// getEnode returns the enode of the netowrk node
-func getEnode(n Node) (string, error) {
- reqCount := 0
-
- for {
- nodeInfo, err := n.AdminNodeInfo()
-
- if err != nil {
- if r, ok := n.(*node); ok {
- if !r.running() {
- return "", err
- }
- }
-
- if reqCount < 10 {
- var urlErr *url.Error
- if errors.As(err, &urlErr) {
- var opErr *net.OpError
- if errors.As(urlErr.Err, &opErr) {
- var callErr *os.SyscallError
- if errors.As(opErr.Err, &callErr) {
- if strings.HasPrefix(callErr.Syscall, "connect") {
- reqCount++
- time.Sleep(time.Duration(devnetutils.RandomInt(5)) * time.Second)
- continue
- }
- }
- }
- }
- }
-
- return "", err
- }
-
- enode, err := devnetutils.UniqueIDFromEnode(nodeInfo.Enode)
-
- if err != nil {
- return "", err
- }
-
- return enode, nil
- }
-}
-
func (nw *Network) Stop() {
type stoppable interface {
Stop()
diff --git a/cmd/devnet/devnet/node.go b/cmd/devnet/devnet/node.go
index 83776a3adc8..ef2d5589eae 100644
--- a/cmd/devnet/devnet/node.go
+++ b/cmd/devnet/devnet/node.go
@@ -24,10 +24,13 @@ import (
type Node interface {
requests.RequestGenerator
- Name() string
+ GetName() string
ChainID() *big.Int
+ GetHttpPort() int
+ GetEnodeURL() string
Account() *accounts.Account
IsBlockProducer() bool
+ Configure(baseNode args.NodeArgs, nodeNumber int) error
}
type NodeSelector interface {
@@ -41,7 +44,7 @@ func (f NodeSelectorFunc) Test(ctx context.Context, node Node) bool {
}
func HTTPHost(n Node) string {
- if n, ok := n.(*node); ok {
+ if n, ok := n.(*devnetNode); ok {
host := n.nodeCfg.Http.HttpListenAddress
if host == "" {
@@ -54,10 +57,10 @@ func HTTPHost(n Node) string {
return ""
}
-type node struct {
+type devnetNode struct {
sync.Mutex
requests.RequestGenerator
- args interface{}
+ nodeArgs Node
wg *sync.WaitGroup
network *Network
startErr chan error
@@ -66,7 +69,7 @@ type node struct {
ethNode *enode.ErigonNode
}
-func (n *node) Stop() {
+func (n *devnetNode) Stop() {
var toClose *enode.ErigonNode
n.Lock()
@@ -83,13 +86,13 @@ func (n *node) Stop() {
n.done()
}
-func (n *node) running() bool {
+func (n *devnetNode) running() bool {
n.Lock()
defer n.Unlock()
return n.startErr == nil && n.ethNode != nil
}
-func (n *node) done() {
+func (n *devnetNode) done() {
n.Lock()
defer n.Unlock()
if n.wg != nil {
@@ -99,37 +102,36 @@ func (n *node) done() {
}
}
-func (n *node) IsBlockProducer() bool {
- _, isBlockProducer := n.args.(args.BlockProducer)
- return isBlockProducer
+func (n *devnetNode) Configure(args.NodeArgs, int) error {
+ return nil
}
-func (n *node) Account() *accounts.Account {
- if miner, ok := n.args.(args.BlockProducer); ok {
- return miner.Account()
- }
+func (n *devnetNode) IsBlockProducer() bool {
+ return n.nodeArgs.IsBlockProducer()
+}
- return nil
+func (n *devnetNode) Account() *accounts.Account {
+ return n.nodeArgs.Account()
}
-func (n *node) Name() string {
- if named, ok := n.args.(interface{ Name() string }); ok {
- return named.Name()
- }
+func (n *devnetNode) GetName() string {
+ return n.nodeArgs.GetName()
+}
- return ""
+func (n *devnetNode) ChainID() *big.Int {
+ return n.nodeArgs.ChainID()
}
-func (n *node) ChainID() *big.Int {
- if n.ethCfg != nil {
- return n.ethCfg.Genesis.Config.ChainID
- }
+func (n *devnetNode) GetHttpPort() int {
+ return n.nodeArgs.GetHttpPort()
+}
- return nil
+func (n *devnetNode) GetEnodeURL() string {
+ return n.nodeArgs.GetEnodeURL()
}
// run configures, creates and serves an erigon node
-func (n *node) run(ctx *cli.Context) error {
+func (n *devnetNode) run(ctx *cli.Context) error {
var logger log.Logger
var tracer tracers.Tracer
var err error
diff --git a/cmd/devnet/main.go b/cmd/devnet/main.go
index 827d8d7f8b5..5de9d579018 100644
--- a/cmd/devnet/main.go
+++ b/cmd/devnet/main.go
@@ -3,6 +3,7 @@ package main
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon/cmd/utils"
"os"
"os/signal"
"path/filepath"
@@ -11,6 +12,7 @@ import (
"syscall"
"time"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
"github.com/ledgerwatch/erigon/cmd/devnet/accounts"
_ "github.com/ledgerwatch/erigon/cmd/devnet/accounts/steps"
_ "github.com/ledgerwatch/erigon/cmd/devnet/admin"
@@ -27,7 +29,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/cmd/devnet/scenarios"
"github.com/ledgerwatch/erigon/cmd/devnet/services"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/log/v3"
"github.com/ledgerwatch/erigon/cmd/utils/flags"
@@ -332,7 +333,7 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
DataDir: dataDir,
Chain: networkname.BorDevnetChainName,
Logger: logger,
- BasePort: 30303,
+ BasePort: 40303,
BasePrivateApiAddr: "localhost:10090",
BaseRPCHost: baseRpcHost,
BaseRPCPort: baseRpcPort,
@@ -344,16 +345,16 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource),
},
Nodes: []devnet.Node{
- args.BlockProducer{
- Node: args.Node{
+ &args.BlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
WithoutHeimdall: true,
},
AccountSlots: 200,
},
- args.NonBlockProducer{
- Node: args.Node{
+ &args.NonBlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
WithoutHeimdall: true,
@@ -364,11 +365,14 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
} else {
var heimdallGrpc string
var services []devnet.Service
+ var withMilestones = utils.WithHeimdallMilestones.Value
checkpointOwner := accounts.NewAccount("checkpoint-owner")
if ctx.Bool(LocalHeimdallFlag.Name) {
config := *params.BorDevnetChainConfig
+ // milestones are not supported yet on the local heimdall
+ withMilestones = false
if sprintSize := uint64(ctx.Int(BorSprintSizeFlag.Name)); sprintSize > 0 {
config.Bor.Sprint = map[string]uint64{"0": sprintSize}
@@ -389,33 +393,34 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
DataDir: dataDir,
Chain: networkname.BorDevnetChainName,
Logger: logger,
- BasePort: 30303,
+ BasePort: 40303,
BasePrivateApiAddr: "localhost:10090",
BaseRPCHost: baseRpcHost,
BaseRPCPort: baseRpcPort,
BorStateSyncDelay: 5 * time.Second,
+ BorWithMilestones: &withMilestones,
Services: append(services, account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource)),
Alloc: types.GenesisAlloc{
faucetSource.Address: {Balance: accounts.EtherAmount(200_000)},
},
Nodes: []devnet.Node{
- args.BlockProducer{
- Node: args.Node{
+ &args.BlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGRpc: heimdallGrpc,
},
AccountSlots: 200,
},
- args.BlockProducer{
- Node: args.Node{
+ &args.BlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGRpc: heimdallGrpc,
},
AccountSlots: 200,
},
- /*args.BlockProducer{
+ /*&args.BlockProducer{
Node: args.Node{
ConsoleVerbosity: "0",
DirVerbosity: "5",
@@ -423,8 +428,8 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
},
AccountSlots: 200,
},*/
- args.NonBlockProducer{
- Node: args.Node{
+ &args.NonBlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
HeimdallGRpc: heimdallGrpc,
@@ -439,15 +444,15 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
BasePort: 30403,
BasePrivateApiAddr: "localhost:10190",
BaseRPCHost: baseRpcHost,
- BaseRPCPort: baseRpcPort,
+ BaseRPCPort: baseRpcPort + 1000,
Services: append(services, account_services.NewFaucet(networkname.DevChainName, faucetSource)),
Alloc: types.GenesisAlloc{
faucetSource.Address: {Balance: accounts.EtherAmount(200_000)},
checkpointOwner.Address: {Balance: accounts.EtherAmount(10_000)},
},
Nodes: []devnet.Node{
- args.BlockProducer{
- Node: args.Node{
+ &args.BlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
VMDebug: true,
@@ -456,8 +461,8 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
DevPeriod: 5,
AccountSlots: 200,
},
- args.NonBlockProducer{
- Node: args.Node{
+ &args.NonBlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "3",
},
@@ -482,15 +487,15 @@ func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) {
account_services.NewFaucet(networkname.DevChainName, faucetSource),
},
Nodes: []devnet.Node{
- args.BlockProducer{
- Node: args.Node{
+ &args.BlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
},
AccountSlots: 200,
},
- args.NonBlockProducer{
- Node: args.Node{
+ &args.NonBlockProducer{
+ NodeArgs: args.NodeArgs{
ConsoleVerbosity: "0",
DirVerbosity: "5",
},
diff --git a/cmd/devnet/requests/account.go b/cmd/devnet/requests/account.go
index d77834ff0cb..30e1fa7e506 100644
--- a/cmd/devnet/requests/account.go
+++ b/cmd/devnet/requests/account.go
@@ -2,11 +2,11 @@ package requests
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
)
@@ -36,7 +36,7 @@ type StorageResult struct {
func (reqGen *requestGenerator) GetCode(address libcommon.Address, blockRef rpc.BlockReference) (hexutility.Bytes, error) {
var result hexutility.Bytes
- if err := reqGen.callCli(&result, Methods.ETHGetCode, address, blockRef); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHGetCode, address, blockRef); err != nil {
return nil, err
}
@@ -46,7 +46,7 @@ func (reqGen *requestGenerator) GetCode(address libcommon.Address, blockRef rpc.
func (reqGen *requestGenerator) GetBalance(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) {
var result hexutil.Big
- if err := reqGen.callCli(&result, Methods.ETHGetBalance, address, blockRef); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHGetBalance, address, blockRef); err != nil {
return nil, err
}
@@ -56,7 +56,7 @@ func (reqGen *requestGenerator) GetBalance(address libcommon.Address, blockRef r
func (reqGen *requestGenerator) GetTransactionCount(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) {
var result hexutil.Big
- if err := reqGen.callCli(&result, Methods.ETHGetTransactionCount, address, blockRef); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHGetTransactionCount, address, blockRef); err != nil {
return nil, err
}
@@ -67,7 +67,7 @@ func (reqGen *requestGenerator) DebugAccountAt(blockHash libcommon.Hash, txIndex
var b DebugAccountAt
method, body := reqGen.debugAccountAt(blockHash, txIndex, account)
- if res := reqGen.call(method, body, &b); res.Err != nil {
+ if res := reqGen.rpcCallJSON(method, body, &b); res.Err != nil {
return nil, fmt.Errorf("failed to get account: %v", res.Err)
}
diff --git a/cmd/devnet/requests/admin.go b/cmd/devnet/requests/admin.go
index be9f6447003..6fb4567d162 100644
--- a/cmd/devnet/requests/admin.go
+++ b/cmd/devnet/requests/admin.go
@@ -7,7 +7,7 @@ import (
func (reqGen *requestGenerator) AdminNodeInfo() (p2p.NodeInfo, error) {
var result p2p.NodeInfo
- if err := reqGen.callCli(&result, Methods.AdminNodeInfo); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.AdminNodeInfo); err != nil {
return p2p.NodeInfo{}, err
}
diff --git a/cmd/devnet/requests/block.go b/cmd/devnet/requests/block.go
index 153f376c4a0..b5d719adf46 100644
--- a/cmd/devnet/requests/block.go
+++ b/cmd/devnet/requests/block.go
@@ -2,11 +2,11 @@ package requests
import (
"encoding/json"
+ hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
@@ -24,7 +24,7 @@ func (bn BlockNumber) Uint64() uint64 {
}
func AsBlockNumber(n *big.Int) BlockNumber {
- return BlockNumber(hexutil.EncodeBig(n))
+ return BlockNumber(hexutil2.EncodeBig(n))
}
var BlockNumbers = struct {
@@ -40,45 +40,75 @@ var BlockNumbers = struct {
Pending: "pending",
}
-type Block struct {
+type BlockWithTxHashes struct {
*types.Header
- Hash libcommon.Hash `json:"hash"`
- Transactions []*jsonrpc.RPCTransaction `json:"transactions"`
+ Hash libcommon.Hash `json:"hash"`
+ TransactionHashes []libcommon.Hash
}
-func (b *Block) UnmarshalJSON(input []byte) error {
- type body struct {
- Hash libcommon.Hash `json:"hash"`
- Transactions []*jsonrpc.RPCTransaction `json:"transactions"`
+func (b *BlockWithTxHashes) UnmarshalJSON(input []byte) error {
+ var header types.Header
+ if err := json.Unmarshal(input, &header); err != nil {
+ return err
}
- bd := body{}
-
+ var bd struct {
+ Hash libcommon.Hash `json:"hash"`
+ TransactionHashes []libcommon.Hash `json:"transactions"`
+ }
if err := json.Unmarshal(input, &bd); err != nil {
return err
}
- header := types.Header{}
+ b.Header = &header
+ b.Hash = bd.Hash
+ b.TransactionHashes = bd.TransactionHashes
+
+ return nil
+}
+type Block struct {
+ BlockWithTxHashes
+ Transactions []*jsonrpc.RPCTransaction `json:"transactions"`
+}
+
+func (b *Block) UnmarshalJSON(input []byte) error {
+ var header types.Header
if err := json.Unmarshal(input, &header); err != nil {
return err
}
+ var bd struct {
+ Hash libcommon.Hash `json:"hash"`
+ Transactions []*jsonrpc.RPCTransaction `json:"transactions"`
+ }
+ if err := json.Unmarshal(input, &bd); err != nil {
+ return err
+ }
+
b.Header = &header
b.Hash = bd.Hash
b.Transactions = bd.Transactions
+
+ if bd.Transactions != nil {
+ b.TransactionHashes = make([]libcommon.Hash, len(b.Transactions))
+ for _, t := range bd.Transactions {
+ b.TransactionHashes = append(b.TransactionHashes, t.Hash)
+ }
+ }
+
return nil
}
type EthGetTransactionCount struct {
CommonResponse
- Result hexutil.Uint64 `json:"result"`
+ Result hexutil2.Uint64 `json:"result"`
}
func (reqGen *requestGenerator) BlockNumber() (uint64, error) {
- var result hexutil.Uint64
+ var result hexutil2.Uint64
- if err := reqGen.callCli(&result, Methods.ETHBlockNumber); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHBlockNumber); err != nil {
return 0, err
}
@@ -87,8 +117,15 @@ func (reqGen *requestGenerator) BlockNumber() (uint64, error) {
func (reqGen *requestGenerator) GetBlockByNumber(blockNum rpc.BlockNumber, withTxs bool) (*Block, error) {
var result Block
+ var err error
+
+ if withTxs {
+ err = reqGen.rpcCall(&result, Methods.ETHGetBlockByNumber, blockNum, withTxs)
+ } else {
+ err = reqGen.rpcCall(&result.BlockWithTxHashes, Methods.ETHGetBlockByNumber, blockNum, withTxs)
+ }
- if err := reqGen.callCli(&result, Methods.ETHGetBlockByNumber, blockNum, withTxs); err != nil {
+ if err != nil {
return nil, err
}
@@ -98,7 +135,7 @@ func (reqGen *requestGenerator) GetBlockByNumber(blockNum rpc.BlockNumber, withT
func (req *requestGenerator) GetRootHash(startBlock uint64, endBlock uint64) (libcommon.Hash, error) {
var result string
- if err := req.callCli(&result, Methods.BorGetRootHash, startBlock, endBlock); err != nil {
+ if err := req.rpcCall(&result, Methods.BorGetRootHash, startBlock, endBlock); err != nil {
return libcommon.Hash{}, err
}
diff --git a/cmd/devnet/requests/event.go b/cmd/devnet/requests/event.go
index 2ece47d6636..379b78a77c1 100644
--- a/cmd/devnet/requests/event.go
+++ b/cmd/devnet/requests/event.go
@@ -4,11 +4,11 @@ import (
"context"
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
ethereum "github.com/ledgerwatch/erigon"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
)
@@ -50,7 +50,7 @@ func NewLog(hash libcommon.Hash, blockNum uint64, address libcommon.Address, top
func (reqGen *requestGenerator) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) {
var result []types.Log
- if err := reqGen.callCli(&result, Methods.ETHGetLogs, query); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHGetLogs, query); err != nil {
return nil, err
}
diff --git a/cmd/devnet/requests/request_generator.go b/cmd/devnet/requests/request_generator.go
index 80bbe5f5708..fa0b3c1196f 100644
--- a/cmd/devnet/requests/request_generator.go
+++ b/cmd/devnet/requests/request_generator.go
@@ -3,9 +3,11 @@ package requests
import (
"context"
"encoding/json"
+ "errors"
"fmt"
"io"
"math/big"
+ "net"
"net/http"
"strings"
"sync"
@@ -151,11 +153,15 @@ var Methods = struct {
ETHCall: "eth_call",
}
-func (req *requestGenerator) call(method RPCMethod, body string, response interface{}) callResult {
+func (req *requestGenerator) rpcCallJSON(method RPCMethod, body string, response interface{}) callResult {
+ ctx := context.Background()
+ req.reqID++
start := time.Now()
targetUrl := "http://" + req.target
- err := post(req.client, targetUrl, string(method), body, response, req.logger)
- req.reqID++
+
+ err := retryConnects(ctx, func(ctx context.Context) error {
+ return post(ctx, req.client, targetUrl, string(method), body, response, req.logger)
+ })
return callResult{
RequestBody: body,
@@ -167,14 +173,56 @@ func (req *requestGenerator) call(method RPCMethod, body string, response interf
}
}
-func (req *requestGenerator) callCli(result interface{}, method RPCMethod, args ...interface{}) error {
- cli, err := req.cli(context.Background())
-
+func (req *requestGenerator) rpcCall(result interface{}, method RPCMethod, args ...interface{}) error {
+ ctx := context.Background()
+ client, err := req.rpcClient(ctx)
if err != nil {
return err
}
- return cli.Call(result, string(method), args...)
+ return retryConnects(ctx, func(ctx context.Context) error {
+ return client.CallContext(ctx, result, string(method), args...)
+ })
+}
+
+const connectionTimeout = time.Second * 5
+
+func isConnectionError(err error) bool {
+ var opErr *net.OpError
+ if errors.As(err, &opErr) {
+ return opErr.Op == "dial"
+ }
+ return false
+}
+
+func retryConnects(ctx context.Context, op func(context.Context) error) error {
+ ctx, cancel := context.WithTimeout(ctx, connectionTimeout)
+ defer cancel()
+ return retry(ctx, op, isConnectionError, time.Millisecond*200, nil)
+}
+
+func retry(ctx context.Context, op func(context.Context) error, isRecoverableError func(error) bool, delay time.Duration, lastErr error) error {
+ err := op(ctx)
+ if err == nil {
+ return nil
+ }
+ if errors.Is(err, context.DeadlineExceeded) && lastErr != nil {
+ return lastErr
+ }
+ if !isRecoverableError(err) {
+ return err
+ }
+
+ delayTimer := time.NewTimer(delay)
+ select {
+ case <-delayTimer.C:
+ return retry(ctx, op, isRecoverableError, delay, err)
+ case <-ctx.Done():
+ if errors.Is(ctx.Err(), context.DeadlineExceeded) {
+ return err
+ }
+ return ctx.Err()
+ }
}
type PingResult callResult
@@ -231,17 +279,15 @@ func NewRequestGenerator(target string, logger log.Logger) RequestGenerator {
client: &http.Client{
Timeout: time.Second * 10,
},
- reqID: 1,
logger: logger,
target: target,
}
}
-func (req *requestGenerator) cli(ctx context.Context) (*rpc.Client, error) {
+func (req *requestGenerator) rpcClient(ctx context.Context) (*rpc.Client, error) {
if req.requestClient == nil {
var err error
req.requestClient, err = rpc.DialContext(ctx, "http://"+req.target, req.logger)
-
if err != nil {
return nil, err
}
@@ -250,14 +296,23 @@ func (req *requestGenerator) cli(ctx context.Context) (*rpc.Client, error) {
return req.requestClient, nil
}
-func post(client *http.Client, url, method, request string, response interface{}, logger log.Logger) error {
+func post(ctx context.Context, client *http.Client, url, method, request string, response interface{}, logger log.Logger) error {
start := time.Now()
- r, err := client.Post(url, "application/json", strings.NewReader(request)) // nolint:bodyclose
+
+ req, err := http.NewRequest("POST", url, strings.NewReader(request))
+ if err != nil {
+ return err
+ }
+ req.Header.Set("Content-Type", "application/json")
+ req = req.WithContext(ctx)
+
+ r, err := client.Do(req) // nolint:bodyclose
if err != nil {
return fmt.Errorf("client failed to make post request: %w", err)
}
- defer func(Body io.ReadCloser) {
- closeErr := Body.Close()
+
+ defer func(body io.ReadCloser) {
+ closeErr := body.Close()
if closeErr != nil {
logger.Warn("body close", "err", closeErr)
}
@@ -288,11 +343,12 @@ func post(client *http.Client, url, method, request string, response interface{}
// subscribe connects to a websocket client and returns the subscription handler and a channel buffer
func (req *requestGenerator) Subscribe(ctx context.Context, method SubMethod, subChan interface{}, args ...interface{}) (ethereum.Subscription, error) {
- var err error
-
if req.subscriptionClient == nil {
- req.subscriptionClient, err = rpc.DialWebsocket(ctx, "ws://"+req.target, "", req.logger)
-
+ err := retryConnects(ctx, func(ctx context.Context) error {
+ var err error
+ req.subscriptionClient, err = rpc.DialWebsocket(ctx, "ws://"+req.target, "", req.logger)
+ return err
+ })
if err != nil {
return nil, fmt.Errorf("failed to dial websocket: %v", err)
}
diff --git a/cmd/devnet/requests/trace.go b/cmd/devnet/requests/trace.go
index 4704e5e8859..9ebc7b43729 100644
--- a/cmd/devnet/requests/trace.go
+++ b/cmd/devnet/requests/trace.go
@@ -3,10 +3,10 @@ package requests
import (
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
)
@@ -113,7 +113,7 @@ func (reqGen *requestGenerator) TraceCall(blockRef rpc.BlockReference, args etha
}
method, body := reqGen.traceCall(blockRef, string(argsVal), string(optsVal))
- res := reqGen.call(method, body, &b)
+ res := reqGen.rpcCallJSON(method, body, &b)
if res.Err != nil {
return nil, fmt.Errorf("TraceCall rpc failed: %w", res.Err)
@@ -134,7 +134,7 @@ func (req *requestGenerator) traceCall(blockRef rpc.BlockReference, callArgs str
func (reqGen *requestGenerator) TraceTransaction(hash libcommon.Hash) ([]TransactionTrace, error) {
var result []TransactionTrace
- if err := reqGen.callCli(&result, Methods.TraceTransaction, hash); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.TraceTransaction, hash); err != nil {
return nil, err
}
diff --git a/cmd/devnet/requests/transaction.go b/cmd/devnet/requests/transaction.go
index cf0889491c8..06d0be67618 100644
--- a/cmd/devnet/requests/transaction.go
+++ b/cmd/devnet/requests/transaction.go
@@ -4,12 +4,12 @@ import (
"bytes"
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
ethereum "github.com/ledgerwatch/erigon"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/turbo/adapter/ethapi"
@@ -78,7 +78,7 @@ func (reqGen *requestGenerator) EstimateGas(args ethereum.CallMsg, blockRef Bloc
}
method, body := reqGen.estimateGas(string(argsVal), blockRef)
- res := reqGen.call(method, body, &b)
+ res := reqGen.rpcCallJSON(method, body, &b)
if res.Err != nil {
return 0, fmt.Errorf("EstimateGas rpc failed: %w", res.Err)
@@ -100,7 +100,7 @@ func (req *requestGenerator) estimateGas(callArgs string, blockRef BlockNumber)
func (reqGen *requestGenerator) GasPrice() (*big.Int, error) {
var result hexutil.Big
- if err := reqGen.callCli(&result, Methods.ETHGasPrice); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHGasPrice); err != nil {
return nil, err
}
@@ -110,7 +110,7 @@ func (reqGen *requestGenerator) GasPrice() (*big.Int, error) {
func (reqGen *requestGenerator) Call(args ethapi.CallArgs, blockRef rpc.BlockReference, overrides *ethapi.StateOverrides) ([]byte, error) {
var result hexutility.Bytes
- if err := reqGen.callCli(&result, Methods.ETHCall, args, blockRef, overrides); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHCall, args, blockRef, overrides); err != nil {
return nil, err
}
@@ -125,7 +125,7 @@ func (reqGen *requestGenerator) SendTransaction(signedTx types.Transaction) (lib
return libcommon.Hash{}, fmt.Errorf("failed to marshal binary: %v", err)
}
- if err := reqGen.callCli(&result, Methods.ETHSendRawTransaction, hexutility.Bytes(buf.Bytes())); err != nil {
+ if err := reqGen.rpcCall(&result, Methods.ETHSendRawTransaction, hexutility.Bytes(buf.Bytes())); err != nil {
return libcommon.Hash{}, err
}
@@ -148,7 +148,7 @@ func (reqGen *requestGenerator) SendTransaction(signedTx types.Transaction) (lib
func (req *requestGenerator) GetTransactionByHash(hash libcommon.Hash) (*jsonrpc.RPCTransaction, error) {
var result jsonrpc.RPCTransaction
- if err := req.callCli(&result, Methods.ETHGetTransactionByHash, hash); err != nil {
+ if err := req.rpcCall(&result, Methods.ETHGetTransactionByHash, hash); err != nil {
return nil, err
}
@@ -158,7 +158,7 @@ func (req *requestGenerator) GetTransactionByHash(hash libcommon.Hash) (*jsonrpc
func (req *requestGenerator) GetTransactionReceipt(hash libcommon.Hash) (*types.Receipt, error) {
var result types.Receipt
- if err := req.callCli(&result, Methods.ETHGetTransactionReceipt, hash); err != nil {
+ if err := req.rpcCall(&result, Methods.ETHGetTransactionReceipt, hash); err != nil {
return nil, err
}
diff --git a/cmd/devnet/requests/tx.go b/cmd/devnet/requests/tx.go
index 2d32a776221..ec2da47133e 100644
--- a/cmd/devnet/requests/tx.go
+++ b/cmd/devnet/requests/tx.go
@@ -18,7 +18,7 @@ func (reqGen *requestGenerator) TxpoolContent() (int, int, int, error) {
)
method, body := reqGen.txpoolContent()
- if res := reqGen.call(method, body, &b); res.Err != nil {
+ if res := reqGen.rpcCallJSON(method, body, &b); res.Err != nil {
return len(pending), len(queued), len(baseFee), fmt.Errorf("failed to fetch txpool content: %v", res.Err)
}
diff --git a/cmd/devnet/services/accounts/faucet.go b/cmd/devnet/services/accounts/faucet.go
index 92279992d76..5a0b88b6dd4 100644
--- a/cmd/devnet/services/accounts/faucet.go
+++ b/cmd/devnet/services/accounts/faucet.go
@@ -214,7 +214,7 @@ func (f *Faucet) NodeCreated(ctx context.Context, node devnet.Node) {
func (f *Faucet) NodeStarted(ctx context.Context, node devnet.Node) {
logger := devnet.Logger(ctx)
- if strings.HasPrefix(node.Name(), f.chainName) && node.IsBlockProducer() {
+ if strings.HasPrefix(node.GetName(), f.chainName) && node.IsBlockProducer() {
f.Lock()
defer f.Unlock()
diff --git a/cmd/devnet/services/polygon/checkpoint.go b/cmd/devnet/services/polygon/checkpoint.go
index b789d6de2b2..5dcd0d0164b 100644
--- a/cmd/devnet/services/polygon/checkpoint.go
+++ b/cmd/devnet/services/polygon/checkpoint.go
@@ -10,6 +10,7 @@ import (
"strings"
"time"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon/accounts/abi/bind"
@@ -21,7 +22,6 @@ import (
"github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/crypto"
- "github.com/ledgerwatch/erigon/params/networkname"
)
type CheckpointBlock struct {
@@ -126,7 +126,11 @@ func (h *Heimdall) startChildHeaderSubscription(ctx context.Context) {
for childHeader := range childHeaderChan {
if err := h.handleChildHeader(ctx, childHeader); err != nil {
- h.logger.Error("L2 header processing failed", "header", childHeader.Number, "err", err)
+ if errors.Is(err, notEnoughChildChainTxConfirmationsError) {
+ h.logger.Info("L2 header processing skipped", "header", childHeader.Number, "err", err)
+ } else {
+ h.logger.Error("L2 header processing failed", "header", childHeader.Number, "err", err)
+ }
}
}
}
@@ -149,6 +153,8 @@ func (h *Heimdall) startRootHeaderBlockSubscription() {
}
}
+var notEnoughChildChainTxConfirmationsError = errors.New("the chain doesn't have enough blocks for ChildChainTxConfirmations")
+
func (h *Heimdall) handleChildHeader(ctx context.Context, header *types.Header) error {
h.logger.Debug("no of checkpoint confirmations required", "childChainTxConfirmations", h.checkpointConfig.ChildChainTxConfirmations)
@@ -156,9 +162,7 @@ func (h *Heimdall) handleChildHeader(ctx context.Context, header *types.Header)
latestConfirmedChildBlock := header.Number.Int64() - int64(h.checkpointConfig.ChildChainTxConfirmations)
if latestConfirmedChildBlock <= 0 {
- h.logger.Error("no of blocks on childchain is less than confirmations required",
- "childChainBlocks", header.Number.Uint64(), "confirmationsRequired", h.checkpointConfig.ChildChainTxConfirmations)
- return errors.New("no of blocks on childchain is less than confirmations required")
+ return notEnoughChildChainTxConfirmationsError
}
timeStamp := uint64(time.Now().Unix())
diff --git a/cmd/devnet/services/polygon/heimdall.go b/cmd/devnet/services/polygon/heimdall.go
index 3eb6d3f1837..a55ce00491e 100644
--- a/cmd/devnet/services/polygon/heimdall.go
+++ b/cmd/devnet/services/polygon/heimdall.go
@@ -256,14 +256,18 @@ func (h *Heimdall) NodeCreated(ctx context.Context, node devnet.Node) {
h.Lock()
defer h.Unlock()
- if strings.HasPrefix(node.Name(), "bor") && node.IsBlockProducer() && node.Account() != nil {
+ if strings.HasPrefix(node.GetName(), "bor") && node.IsBlockProducer() && node.Account() != nil {
// TODO configurable voting power
h.addValidator(node.Account().Address, 1000, 0)
}
}
func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) {
- if !strings.HasPrefix(node.Name(), "bor") && node.IsBlockProducer() {
+ if h.validatorSet == nil {
+ panic("Heimdall devnet service: unexpected empty validator set! Call addValidator() before starting nodes.")
+ }
+
+ if !strings.HasPrefix(node.GetName(), "bor") && node.IsBlockProducer() {
h.Lock()
defer h.Unlock()
@@ -276,7 +280,9 @@ func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) {
transactOpts, err := bind.NewKeyedTransactorWithChainID(accounts.SigKey(node.Account().Address), node.ChainID())
if err != nil {
+ h.Unlock()
h.unsubscribe()
+ h.Lock()
h.logger.Error("Failed to deploy state sender", "err", err)
return
}
@@ -320,7 +326,7 @@ func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) {
h.logger.Info("RootChain deployed", "chain", h.chainConfig.ChainName, "block", blocks[syncTx.Hash()].Number, "addr", h.rootChainAddress)
h.logger.Info("StateSender deployed", "chain", h.chainConfig.ChainName, "block", blocks[syncTx.Hash()].Number, "addr", h.syncSenderAddress)
- go h.startStateSyncSubacription()
+ go h.startStateSyncSubscription()
go h.startChildHeaderSubscription(deployCtx)
go h.startRootHeaderBlockSubscription()
}()
diff --git a/cmd/devnet/services/polygon/proofgenerator.go b/cmd/devnet/services/polygon/proofgenerator.go
index 75faa4c8aa9..3326639d7b0 100644
--- a/cmd/devnet/services/polygon/proofgenerator.go
+++ b/cmd/devnet/services/polygon/proofgenerator.go
@@ -5,20 +5,20 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon/cl/merkle_tree"
"math"
"math/big"
"strings"
"sync"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon/accounts/abi/bind"
- "github.com/ledgerwatch/erigon/cl/merkle_tree"
"github.com/ledgerwatch/erigon/cmd/devnet/devnet"
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/crypto"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/erigon/rlp"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/turbo/jsonrpc"
@@ -38,7 +38,7 @@ func NewProofGenerator() *ProofGenerator {
func (pg *ProofGenerator) NodeCreated(ctx context.Context, node devnet.Node) {
if pg.heimdall == nil {
- if strings.HasPrefix(node.Name(), "bor") {
+ if strings.HasPrefix(node.GetName(), "bor") {
if network := devnet.CurrentNetwork(ctx); network != nil {
for _, service := range network.Services {
if heimdall, ok := service.(*Heimdall); ok {
diff --git a/cmd/devnet/services/polygon/statesync.go b/cmd/devnet/services/polygon/statesync.go
index d055b6397ef..0429f5085db 100644
--- a/cmd/devnet/services/polygon/statesync.go
+++ b/cmd/devnet/services/polygon/statesync.go
@@ -23,7 +23,7 @@ type EventRecordWithBlock struct {
BlockNumber uint64
}
-func (h *Heimdall) startStateSyncSubacription() {
+func (h *Heimdall) startStateSyncSubscription() {
var err error
syncChan := make(chan *contracts.TestStateSenderStateSynced, 100)
diff --git a/cmd/devnet/transactions/block.go b/cmd/devnet/transactions/block.go
index cf53d0292c5..7219658c36b 100644
--- a/cmd/devnet/transactions/block.go
+++ b/cmd/devnet/transactions/block.go
@@ -3,6 +3,7 @@ package transactions
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"time"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -12,7 +13,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/devnet/devnetutils"
"github.com/ledgerwatch/erigon/cmd/devnet/requests"
"github.com/ledgerwatch/erigon/cmd/devnet/services"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/cmd/devnet/transactions/tx.go b/cmd/devnet/transactions/tx.go
index 7298fb41089..f56775094e9 100644
--- a/cmd/devnet/transactions/tx.go
+++ b/cmd/devnet/transactions/tx.go
@@ -41,7 +41,7 @@ func CheckTxPoolContent(ctx context.Context, expectedPendingSize, expectedQueued
}
if expectedPendingSize >= 0 && pendingSize != expectedPendingSize {
- logger.Error("FAILURE mismatched pending subpool size", "expected", expectedPendingSize, "got", pendingSize)
+ logger.Debug("FAILURE mismatched pending subpool size", "expected", expectedPendingSize, "got", pendingSize)
return
}
@@ -51,7 +51,7 @@ func CheckTxPoolContent(ctx context.Context, expectedPendingSize, expectedQueued
}
if expectedBaseFeeSize >= 0 && baseFeeSize != expectedBaseFeeSize {
- logger.Error("FAILURE mismatched basefee subpool size", "expected", expectedBaseFeeSize, "got", baseFeeSize)
+ logger.Debug("FAILURE mismatched basefee subpool size", "expected", expectedBaseFeeSize, "got", baseFeeSize)
}
logger.Info("Subpool sizes", "pending", pendingSize, "queued", queuedSize, "basefee", baseFeeSize)
@@ -335,7 +335,12 @@ func signEIP1559TxsHigherThanBaseFee(ctx context.Context, n int, baseFeePerGas u
devnet.Logger(ctx).Info("HIGHER", "transaction", i, "nonce", transaction.Nonce, "value", transaction.Value, "feecap", transaction.FeeCap)
- signedTransaction, err := types.SignTx(transaction, signer, accounts.SigKey(fromAddress))
+ signerKey := accounts.SigKey(fromAddress)
+ if signerKey == nil {
+ return nil, fmt.Errorf("devnet.signEIP1559TxsHigherThanBaseFee failed to SignTx: private key not found for address %s", fromAddress)
+ }
+
+ signedTransaction, err := types.SignTx(transaction, signer, signerKey)
if err != nil {
return nil, err
}
diff --git a/cmd/downloader/main.go b/cmd/downloader/main.go
index a8d9f8f08d1..4d702b102e5 100644
--- a/cmd/downloader/main.go
+++ b/cmd/downloader/main.go
@@ -14,6 +14,7 @@ import (
"github.com/c2h5oh/datasize"
grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware"
grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/common/dir"
@@ -41,7 +42,6 @@ import (
"github.com/ledgerwatch/erigon/params"
"github.com/ledgerwatch/erigon/turbo/debug"
"github.com/ledgerwatch/erigon/turbo/logging"
- "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg"
)
func main() {
@@ -148,7 +148,7 @@ func Downloader(ctx context.Context, logger log.Logger) error {
if err := datadir.ApplyMigrations(dirs); err != nil {
return err
}
- if err := checkChainName(dirs, chain); err != nil {
+ if err := checkChainName(ctx, dirs, chain); err != nil {
return err
}
torrentLogLevel, _, err := downloadercfg2.Int2LogLevel(torrentVerbosity)
@@ -168,12 +168,17 @@ func Downloader(ctx context.Context, logger log.Logger) error {
staticPeers := common.CliString2Array(staticPeersStr)
version := "erigon: " + params.VersionWithCommit(params.GitCommit)
- cfg, err := downloadercfg2.New(dirs, version, torrentLogLevel, downloadRate, uploadRate, torrentPort, torrentConnsPerFile, torrentDownloadSlots, staticPeers, webseeds)
+
+ webseedsList := common.CliString2Array(webseeds)
+ if known, ok := snapcfg.KnownWebseeds[chain]; ok {
+ webseedsList = append(webseedsList, known...)
+ }
+ cfg, err := downloadercfg2.New(dirs, version, torrentLogLevel, downloadRate, uploadRate, torrentPort, torrentConnsPerFile, torrentDownloadSlots, staticPeers, webseedsList, chain)
if err != nil {
return err
}
- cfg.ClientConfig.PieceHashersPerTorrent = runtime.NumCPU() * 4
+ cfg.ClientConfig.PieceHashersPerTorrent = 4 * runtime.NumCPU()
cfg.ClientConfig.DisableIPv6 = disableIPV6
cfg.ClientConfig.DisableIPv4 = disableIPV4
@@ -183,7 +188,8 @@ func Downloader(ctx context.Context, logger log.Logger) error {
}
downloadernat.DoNat(natif, cfg.ClientConfig, logger)
- d, err := downloader.New(ctx, cfg, logger, log.LvlInfo)
+ cfg.DownloadTorrentFilesFromWebseed = true // enable it only for standalone mode now. feature is not fully ready yet
+ d, err := downloader.New(ctx, cfg, dirs, logger, log.LvlInfo)
if err != nil {
return err
}
@@ -373,14 +379,17 @@ func addPreConfiguredHashes(ctx context.Context, d *downloader.Downloader) error
return nil
}
-func checkChainName(dirs datadir.Dirs, chainName string) error {
+func checkChainName(ctx context.Context, dirs datadir.Dirs, chainName string) error {
if !dir.FileExist(filepath.Join(dirs.Chaindata, "mdbx.dat")) {
return nil
}
- db := mdbx.NewMDBX(log.New()).
+ db, err := mdbx.NewMDBX(log.New()).
Path(dirs.Chaindata).Label(kv.ChainDB).
Accede().
- MustOpen()
+ Open(ctx)
+ if err != nil {
+ return err
+ }
defer db.Close()
if err := db.View(context.Background(), func(tx kv.Tx) error {
cc := tool.ChainConfig(tx)
diff --git a/cmd/erigon/main.go b/cmd/erigon/main.go
index 6ef1a53f7c9..8b1b0c2b4b7 100644
--- a/cmd/erigon/main.go
+++ b/cmd/erigon/main.go
@@ -9,11 +9,12 @@ import (
"reflect"
"strings"
+ "github.com/ledgerwatch/erigon-lib/metrics"
+
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/common/dbg"
"github.com/ledgerwatch/erigon/diagnostics"
"github.com/ledgerwatch/erigon/eth/tracers"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/log/v3"
"github.com/pelletier/go-toml"
"github.com/urfave/cli/v2"
diff --git a/cmd/evm/internal/t8ntool/transition.go b/cmd/evm/internal/t8ntool/transition.go
index 38ea2bc5e85..14401d0f94b 100644
--- a/cmd/evm/internal/t8ntool/transition.go
+++ b/cmd/evm/internal/t8ntool/transition.go
@@ -39,7 +39,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/length"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/kvcfg"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/consensus/ethash"
"github.com/ledgerwatch/erigon/consensus/merge"
@@ -610,8 +609,8 @@ func CalculateStateRoot(tx kv.RwTx) (*libcommon.Hash, error) {
if err != nil {
return nil, err
}
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
for k, v, err := c.First(); k != nil; k, v, err = c.Next() {
if err != nil {
return nil, fmt.Errorf("interate over plain state: %w", err)
@@ -634,11 +633,11 @@ func CalculateStateRoot(tx kv.RwTx) (*libcommon.Hash, error) {
h.Sha.Write(k[length.Addr+length.Incarnation:])
//nolint:errcheck
h.Sha.Read(newK[length.Hash+length.Incarnation:])
- if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil {
+ if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil {
return nil, fmt.Errorf("insert hashed key: %w", err)
}
} else {
- if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil {
+ if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil {
return nil, fmt.Errorf("insert hashed key: %w", err)
}
}
diff --git a/cmd/evm/runner.go b/cmd/evm/runner.go
index 5d6407d1f91..b7a8dc52936 100644
--- a/cmd/evm/runner.go
+++ b/cmd/evm/runner.go
@@ -43,7 +43,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/evm/internal/compiler"
"github.com/ledgerwatch/erigon/cmd/utils"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/state"
"github.com/ledgerwatch/erigon/core/vm"
@@ -218,7 +217,7 @@ func runCmd(ctx *cli.Context) error {
if err != nil {
return err
}
- code = common.Hex2Bytes(bin)
+ code = libcommon.Hex2Bytes(bin)
}
initialGas := ctx.Uint64(GasFlag.Name)
if genesisConfig.GasLimit != 0 {
diff --git a/cmd/evm/testdata/3/readme.md b/cmd/evm/testdata/3/readme.md
index 499f03d7aa7..47792de04c8 100644
--- a/cmd/evm/testdata/3/readme.md
+++ b/cmd/evm/testdata/3/readme.md
@@ -1,2 +1,2 @@
-These files examplify a transition where a transaction (excuted on block 5) requests
+These files examplify a transition where a transaction (executed on block 5) requests
the blockhash for block `1`.
diff --git a/cmd/evm/testdata/4/readme.md b/cmd/evm/testdata/4/readme.md
index 08840d37bd9..a298c32ec77 100644
--- a/cmd/evm/testdata/4/readme.md
+++ b/cmd/evm/testdata/4/readme.md
@@ -1,3 +1,3 @@
-These files examplify a transition where a transaction (excuted on block 5) requests
+These files examplify a transition where a transaction (executed on block 5) requests
the blockhash for block `4`, but where the hash for that block is missing.
It's expected that executing these should cause `exit` with errorcode `4`.
diff --git a/cmd/evm/testdata/8/readme.md b/cmd/evm/testdata/8/readme.md
index f3b523d8955..52289f77d69 100644
--- a/cmd/evm/testdata/8/readme.md
+++ b/cmd/evm/testdata/8/readme.md
@@ -33,7 +33,7 @@ dir=./testdata/8 && ./evm t8n --state.fork=Berlin --input.alloc=$dir/alloc.json
```
-Simlarly, we can provide the input transactions via `stdin` instead of as file:
+Similarly, we can provide the input transactions via `stdin` instead of as file:
```
dir=./testdata/8 \
diff --git a/cmd/hack/hack.go b/cmd/hack/hack.go
index 25d8e1209a6..42aa5932bdf 100644
--- a/cmd/hack/hack.go
+++ b/cmd/hack/hack.go
@@ -8,6 +8,7 @@ import (
"encoding/json"
"flag"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/big"
"net/http"
_ "net/http/pprof" //nolint:gosec
@@ -38,7 +39,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/hack/flow"
"github.com/ledgerwatch/erigon/cmd/hack/tool"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/paths"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
@@ -421,7 +421,7 @@ func iterateOverCode(chaindata string) error {
if err := tx.ForEach(kv.Code, nil, func(k, v []byte) error {
if len(v) > 0 && v[0] == 0xef {
fmt.Printf("Found code with hash %x: %x\n", k, v)
- hashes[libcommon.BytesToHash(k)] = common.CopyBytes(v)
+ hashes[libcommon.BytesToHash(k)] = libcommon.CopyBytes(v)
}
return nil
}); err != nil {
diff --git a/cmd/integration/commands/refetence_db.go b/cmd/integration/commands/refetence_db.go
index 73d73c77d46..ac717c8f360 100644
--- a/cmd/integration/commands/refetence_db.go
+++ b/cmd/integration/commands/refetence_db.go
@@ -389,7 +389,7 @@ MainLoop:
if !fileScanner.Scan() {
break MainLoop
}
- k := common.CopyBytes(fileScanner.Bytes())
+ k := common2.CopyBytes(fileScanner.Bytes())
if bytes.Equal(k, endData) {
break
}
@@ -397,7 +397,7 @@ MainLoop:
if !fileScanner.Scan() {
break MainLoop
}
- v := common.CopyBytes(fileScanner.Bytes())
+ v := common2.CopyBytes(fileScanner.Bytes())
v = common.FromHex(string(v[1:]))
if casted, ok := c.(kv.RwCursorDupSort); ok {
diff --git a/cmd/integration/commands/root.go b/cmd/integration/commands/root.go
index 0b7976f85e8..61628fd1b3c 100644
--- a/cmd/integration/commands/root.go
+++ b/cmd/integration/commands/root.go
@@ -7,7 +7,6 @@ import (
"path/filepath"
"strings"
- "github.com/c2h5oh/datasize"
"github.com/ledgerwatch/log/v3"
"github.com/spf13/cobra"
"golang.org/x/sync/semaphore"
@@ -63,9 +62,9 @@ func dbCfg(label kv.Label, path string) kv2.MdbxOpts {
const ThreadsLimit = 9_000
limiterB := semaphore.NewWeighted(ThreadsLimit)
opts := kv2.NewMDBX(log.New()).Path(path).Label(label).RoTxsLimiter(limiterB).Accede()
- if label == kv.ChainDB {
- opts = opts.MapSize(8 * datasize.TB)
- }
+ //if label == kv.ChainDB {
+ // opts = opts.MapSize(8 * datasize.TB)
+ //}
if databaseVerbosity != -1 {
opts = opts.DBVerbosity(kv.DBVerbosityLvl(databaseVerbosity))
}
diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go
index 724abdff0a7..6fbc0da460a 100644
--- a/cmd/integration/commands/stages.go
+++ b/cmd/integration/commands/stages.go
@@ -15,6 +15,7 @@ import (
"github.com/ledgerwatch/erigon/consensus/bor/heimdallgrpc"
"github.com/ledgerwatch/erigon/core/rawdb/blockio"
"github.com/ledgerwatch/erigon/node/nodecfg"
+ "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client"
"github.com/ledgerwatch/erigon/turbo/builder"
"github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks"
"github.com/ledgerwatch/log/v3"
@@ -33,7 +34,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
libstate "github.com/ledgerwatch/erigon-lib/state"
"github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb"
- "github.com/ledgerwatch/erigon/cmd/sentry/sentry"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
@@ -477,6 +477,7 @@ func init() {
rootCmd.AddCommand(cmdStageSnapshots)
withConfig(cmdStageHeaders)
+ withIntegrityChecks(cmdStageHeaders)
withDataDir(cmdStageHeaders)
withUnwind(cmdStageHeaders)
withReset(cmdStageHeaders)
@@ -647,11 +648,23 @@ func stageHeaders(db kv.RwDB, ctx context.Context, logger log.Logger) error {
engine, _, _, _, _ := newSync(ctx, db, nil /* miningConfig */, logger)
chainConfig, _, _ := fromdb.ChainConfig(db), kvcfg.HistoryV3.FromDB(db), fromdb.PruneMode(db)
- return db.Update(ctx, func(tx kv.RwTx) error {
- if !(unwind > 0 || reset) {
- logger.Info("This command only works with --unwind or --reset options")
+ if integritySlow {
+ if err := db.View(ctx, func(tx kv.Tx) error {
+ log.Info("[integrity] no gaps in canonical headers")
+ integrity.NoGapsInCanonicalHeaders(tx, ctx, br)
+ return nil
+ }); err != nil {
+ return err
}
+ return nil
+ }
+ if !(unwind > 0 || reset) {
+ logger.Error("This command only works with --unwind or --reset options")
+ return nil
+ }
+
+ return db.Update(ctx, func(tx kv.RwTx) error {
if reset {
dirs := datadir.New(datadirCli)
if err := reset2.ResetBlocks(tx, db, agg, br, bw, dirs, *chainConfig, engine, logger); err != nil {
@@ -1516,7 +1529,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig,
maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 }
- sentryControlServer, err := sentry.NewMultiClient(
+ sentryControlServer, err := sentry_multi_client.NewMultiClient(
db,
"",
chainConfig,
diff --git a/cmd/integration/commands/state_domains.go b/cmd/integration/commands/state_domains.go
index 34b80e364f4..fabde89f2f4 100644
--- a/cmd/integration/commands/state_domains.go
+++ b/cmd/integration/commands/state_domains.go
@@ -5,13 +5,13 @@ import (
"encoding/hex"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"path/filepath"
"runtime"
"strings"
"time"
"github.com/holiman/uint256"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/log/v3"
"github.com/spf13/cobra"
diff --git a/cmd/integration/commands/state_stages.go b/cmd/integration/commands/state_stages.go
index 46761fbca0a..3401cf669de 100644
--- a/cmd/integration/commands/state_stages.go
+++ b/cmd/integration/commands/state_stages.go
@@ -6,6 +6,7 @@ import (
"encoding/json"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"os"
"sort"
"time"
@@ -24,7 +25,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb"
"github.com/ledgerwatch/erigon/cmd/utils"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/debugprint"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/state"
diff --git a/cmd/release/go.mod b/cmd/release/go.mod
index fac38415e31..99bfb880ce5 100644
--- a/cmd/release/go.mod
+++ b/cmd/release/go.mod
@@ -1,5 +1,5 @@
module github.com/ledgerwatch/erigon/cmd/release/v2
-go 1.19
+go 1.20
require github.com/hashicorp/go-version v1.6.0
diff --git a/cmd/rpcdaemon/README.md b/cmd/rpcdaemon/README.md
index 1af85e2ba1f..7a275d2ac5b 100644
--- a/cmd/rpcdaemon/README.md
+++ b/cmd/rpcdaemon/README.md
@@ -117,7 +117,7 @@ If the healthcheck is successful it will return a 200 status code.
If the healthcheck fails for any reason a status 500 will be returned. This is true if one of the criteria requested
fails its check.
-You can set any number of values on the `X-ERIGON-HEALTHCHECK` header. Ones that are not included are skipped in the
+You can set any number of values on the `X-ERIGON-HEALTHCHECK` header. Ones that are not included are skipped in the
checks.
Available Options:
@@ -186,6 +186,38 @@ By default data pruned after 90K blocks, can change it by flags like `--prune.hi
Some methods, if not found historical data in DB, can fallback to old blocks re-execution - but it requires `h`.
+### The --http.url flag
+
+the `--http.url` flag is an optional flag which allows one to bind the HTTP server to a socket, for example, `tcp6://:8545` or `unix:///erigon_http.socket`
+
+If the `--http.url` flag is set, then `--http.addr` and `--http.port` with both be ignored.
+
+note that this is NOT geth-style IPC. for that, read the next section, IPC endpoint(geth-compatible)
+
+
+### HTTPS, HTTP2, and H2C
+
+Erigon supports HTTPS, HTTP2, and H2C out of the box. H2C is served by the default HTTP handler.
+
+To enable the HTTPS+HTTP2 server, add flag `--https.enabled`, along with providing flags `-https.cert="/path/to.cert"` and `--https.key=/path/to.key`
+
+By default, the HTTPS server will run on the HTTP port + 363. use flag `--https.port` to set the port
+
+The HTTPS server will inherit all other configuration parameters from http, for instance, enabling the websocket server, cors domains, or enabled namespaces
+
+If the `--https.url` flag is set, then `--https.addr` and `--https.port` with both be ignored.
+
+
+### IPC endpoint (geth compatible)
+
+erigon supports the geth-style unix socket IPC. you can enable this with `--socket.enabled` flag,
+and setting the `--socket.url` flag. For instance, if you wanted the socket to exist at `/var/run/erigon.ipc`,
+you would do `--socket.url=unix:///var/run/erigon.ipc`
+
+you can also use `--socket.url=tcp://:` to serve the raw jsonrpc2 protocol over tcp
+
+the socket will inherit the namespaces from `http.api`
+
### RPC Implementation Status
Label "remote" means: `--private.api.addr` flag is required.
@@ -248,7 +280,7 @@ The following table shows the current implementation status of Erigon's RPC daem
| eth_getFilterChanges | Yes | |
| eth_uninstallFilter | Yes | |
| eth_getLogs | Yes | |
-| | | |
+| interned spe | | |
| eth_accounts | No | deprecated |
| eth_sendRawTransaction | Yes | `remote`. |
| eth_sendTransaction | - | not yet implemented |
diff --git a/cmd/rpcdaemon/cli/config.go b/cmd/rpcdaemon/cli/config.go
index 51d72638a4c..614287a639e 100644
--- a/cmd/rpcdaemon/cli/config.go
+++ b/cmd/rpcdaemon/cli/config.go
@@ -7,6 +7,7 @@ import (
"fmt"
"net"
"net/http"
+ "net/url"
"os"
"path/filepath"
"strings"
@@ -88,19 +89,9 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) {
rootCmd.PersistentFlags().StringVar(&cfg.PrivateApiAddr, "private.api.addr", "127.0.0.1:9090", "Erigon's components (txpool, rpcdaemon, sentry, downloader, ...) can be deployed as independent Processes on same/another server. Then components will connect to erigon by this internal grpc API. Example: 127.0.0.1:9090")
rootCmd.PersistentFlags().StringVar(&cfg.DataDir, "datadir", "", "path to Erigon working directory")
rootCmd.PersistentFlags().BoolVar(&cfg.GraphQLEnabled, "graphql", false, "enables graphql endpoint (disabled by default)")
- rootCmd.PersistentFlags().StringVar(&cfg.HttpListenAddress, "http.addr", nodecfg.DefaultHTTPHost, "HTTP-RPC server listening interface")
- rootCmd.PersistentFlags().StringVar(&cfg.TLSCertfile, "tls.cert", "", "certificate for client side TLS handshake")
- rootCmd.PersistentFlags().StringVar(&cfg.TLSKeyFile, "tls.key", "", "key file for client side TLS handshake")
- rootCmd.PersistentFlags().StringVar(&cfg.TLSCACert, "tls.cacert", "", "CA certificate for client side TLS handshake")
- rootCmd.PersistentFlags().IntVar(&cfg.HttpPort, "http.port", nodecfg.DefaultHTTPPort, "HTTP-RPC server listening port")
- rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpCORSDomain, "http.corsdomain", []string{}, "Comma separated list of domains from which to accept cross origin requests (browser enforced)")
- rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpVirtualHost, "http.vhosts", nodecfg.DefaultConfig.HTTPVirtualHosts, "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.")
- rootCmd.PersistentFlags().BoolVar(&cfg.HttpCompression, "http.compression", true, "Disable http compression")
- rootCmd.PersistentFlags().StringSliceVar(&cfg.API, "http.api", []string{"eth", "erigon"}, "API's offered over the HTTP-RPC interface: eth,erigon,web3,net,debug,trace,txpool,db. Supported methods: https://github.com/ledgerwatch/erigon/tree/devel/cmd/rpcdaemon")
rootCmd.PersistentFlags().Uint64Var(&cfg.Gascap, "rpc.gascap", 50_000_000, "Sets a cap on gas that can be used in eth_call/estimateGas")
rootCmd.PersistentFlags().Uint64Var(&cfg.MaxTraces, "trace.maxtraces", 200, "Sets a limit on traces that can be returned in trace_filter")
- rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketEnabled, "ws", false, "Enable Websockets - Same port as HTTP")
- rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketCompression, "ws.compression", false, "Enable Websocket compression (RFC 7692)")
+
rootCmd.PersistentFlags().StringVar(&cfg.RpcAllowListFilePath, utils.RpcAccessListFlag.Name, "", "Specify granular (method-by-method) API allowlist")
rootCmd.PersistentFlags().UintVar(&cfg.RpcBatchConcurrency, utils.RpcBatchConcurrencyFlag.Name, 2, utils.RpcBatchConcurrencyFlag.Usage)
rootCmd.PersistentFlags().BoolVar(&cfg.RpcStreamingDisable, utils.RpcStreamingDisableFlag.Name, false, utils.RpcStreamingDisableFlag.Usage)
@@ -108,16 +99,38 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) {
rootCmd.PersistentFlags().BoolVar(&cfg.TraceCompatibility, "trace.compat", false, "Bug for bug compatibility with OE for trace_ routines")
rootCmd.PersistentFlags().StringVar(&cfg.TxPoolApiAddr, "txpool.api.addr", "", "txpool api network address, for example: 127.0.0.1:9090 (default: use value of --private.api.addr)")
rootCmd.PersistentFlags().BoolVar(&cfg.Sync.UseSnapshots, "snapshot", true, utils.SnapshotFlag.Usage)
+
rootCmd.PersistentFlags().StringVar(&stateCacheStr, "state.cache", "0MB", "Amount of data to store in StateCache (enabled if no --datadir set). Set 0 to disable StateCache. Defaults to 0MB RAM")
rootCmd.PersistentFlags().BoolVar(&cfg.GRPCServerEnabled, "grpc", false, "Enable GRPC server")
rootCmd.PersistentFlags().StringVar(&cfg.GRPCListenAddress, "grpc.addr", nodecfg.DefaultGRPCHost, "GRPC server listening interface")
rootCmd.PersistentFlags().IntVar(&cfg.GRPCPort, "grpc.port", nodecfg.DefaultGRPCPort, "GRPC server listening port")
rootCmd.PersistentFlags().BoolVar(&cfg.GRPCHealthCheckEnabled, "grpc.healthcheck", false, "Enable GRPC health check")
rootCmd.PersistentFlags().Float64Var(ðconfig.Defaults.RPCTxFeeCap, utils.RPCGlobalTxFeeCapFlag.Name, utils.RPCGlobalTxFeeCapFlag.Value, utils.RPCGlobalTxFeeCapFlag.Usage)
+ rootCmd.PersistentFlags().StringVar(&cfg.TLSCertfile, "tls.cert", "", "certificate for client side TLS handshake for GRPC")
+ rootCmd.PersistentFlags().StringVar(&cfg.TLSKeyFile, "tls.key", "", "key file for client side TLS handshake for GRPC")
+ rootCmd.PersistentFlags().StringVar(&cfg.TLSCACert, "tls.cacert", "", "CA certificate for client side TLS handshake for GRPC")
+
+ rootCmd.PersistentFlags().StringSliceVar(&cfg.API, "http.api", []string{"eth", "erigon"}, "API's offered over the RPC interface: eth,erigon,web3,net,debug,trace,txpool,db. Supported methods: https://github.com/ledgerwatch/erigon/tree/devel/cmd/rpcdaemon")
+
+ rootCmd.PersistentFlags().BoolVar(&cfg.HttpServerEnabled, "http.enabled", true, "enable http server")
+ rootCmd.PersistentFlags().StringVar(&cfg.HttpListenAddress, "http.addr", nodecfg.DefaultHTTPHost, "HTTP server listening interface")
+ rootCmd.PersistentFlags().IntVar(&cfg.HttpPort, "http.port", nodecfg.DefaultHTTPPort, "HTTP server listening port")
+ rootCmd.PersistentFlags().StringVar(&cfg.HttpURL, "http.url", "", "HTTP server listening url. will OVERRIDE http.addr and http.port. will NOT respect http paths. prefix supported are tcp, unix")
+ rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpCORSDomain, "http.corsdomain", []string{}, "Comma separated list of domains from which to accept cross origin requests (browser enforced)")
+ rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpVirtualHost, "http.vhosts", nodecfg.DefaultConfig.HTTPVirtualHosts, "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.")
+ rootCmd.PersistentFlags().BoolVar(&cfg.HttpCompression, "http.compression", true, "Disable http compression")
+ rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketEnabled, "ws", false, "Enable Websockets - Same port as HTTP[S]")
+ rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketCompression, "ws.compression", false, "Enable Websocket compression (RFC 7692)")
- rootCmd.PersistentFlags().BoolVar(&cfg.TCPServerEnabled, "tcp", false, "Enable TCP server")
- rootCmd.PersistentFlags().StringVar(&cfg.TCPListenAddress, "tcp.addr", nodecfg.DefaultTCPHost, "TCP server listening interface")
- rootCmd.PersistentFlags().IntVar(&cfg.TCPPort, "tcp.port", nodecfg.DefaultTCPPort, "TCP server listening port")
+ rootCmd.PersistentFlags().BoolVar(&cfg.HttpsServerEnabled, "https.enabled", false, "enable http server")
+ rootCmd.PersistentFlags().StringVar(&cfg.HttpsListenAddress, "https.addr", nodecfg.DefaultHTTPHost, "rpc HTTPS server listening interface")
+ rootCmd.PersistentFlags().IntVar(&cfg.HttpsPort, "https.port", 0, "rpc HTTPS server listening port. default to http+363 if not set")
+ rootCmd.PersistentFlags().StringVar(&cfg.HttpsURL, "https.url", "", "rpc HTTPS server listening url. will OVERRIDE https.addr and https.port. will NOT respect paths. prefix supported are tcp, unix")
+ rootCmd.PersistentFlags().StringVar(&cfg.HttpsCertfile, "https.cert", "", "certificate for rpc HTTPS server")
+ rootCmd.PersistentFlags().StringVar(&cfg.HttpsKeyFile, "https.key", "", "key file for rpc HTTPS server")
+
+ rootCmd.PersistentFlags().BoolVar(&cfg.SocketServerEnabled, "socket.enabled", false, "Enable IPC server")
+ rootCmd.PersistentFlags().StringVar(&cfg.SocketListenUrl, "socket.url", "unix:///var/run/erigon.sock", "IPC server listening url. prefix supported are tcp, unix")
rootCmd.PersistentFlags().BoolVar(&cfg.TraceRequests, utils.HTTPTraceFlag.Name, false, "Trace HTTP requests with INFO level")
rootCmd.PersistentFlags().DurationVar(&cfg.HTTPTimeouts.ReadTimeout, "http.timeouts.read", rpccfg.DefaultHTTPTimeouts.ReadTimeout, "Maximum duration for reading the entire request, including the body.")
@@ -546,7 +559,6 @@ func StartRpcServerWithJwtAuthentication(ctx context.Context, cfg httpcfg.HttpCf
func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error {
// register apis and create handler stack
- httpEndpoint := fmt.Sprintf("%s:%d", cfg.HttpListenAddress, cfg.HttpPort)
srv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, cfg.RpcStreamingDisable, logger)
@@ -558,6 +570,8 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp
srv.SetBatchLimit(cfg.BatchLimit)
+ defer srv.Stop()
+
var defaultAPIList []rpc.API
for _, api := range rpcAPI {
@@ -577,43 +591,90 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp
return fmt.Errorf("could not start register RPC apis: %w", err)
}
+ info := []interface{}{
+ "ws", cfg.WebsocketEnabled,
+ "ws.compression", cfg.WebsocketCompression, "grpc", cfg.GRPCServerEnabled,
+ }
+
+ if cfg.SocketServerEnabled {
+ socketUrl, err := url.Parse(cfg.SocketListenUrl)
+ if err != nil {
+ return fmt.Errorf("malformatted socket url %s: %w", cfg.SocketListenUrl, err)
+ }
+ tcpListener, err := net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath())
+ if err != nil {
+ return fmt.Errorf("could not start Socket Listener: %w", err)
+ }
+ defer tcpListener.Close()
+ go func() {
+ err := srv.ServeListener(tcpListener)
+ if err != nil {
+ if !errors.Is(err, net.ErrClosed) {
+ logger.Error("Socket Listener Fatal Error", "err", err)
+ }
+ }
+ }()
+ info = append(info, "socket.url", socketUrl)
+ logger.Info("Socket Endpoint opened", "url", socketUrl)
+ }
+
httpHandler := node.NewHTTPHandlerStack(srv, cfg.HttpCORSDomain, cfg.HttpVirtualHost, cfg.HttpCompression)
var wsHandler http.Handler
if cfg.WebsocketEnabled {
wsHandler = srv.WebsocketHandler([]string{"*"}, nil, cfg.WebsocketCompression, logger)
}
-
graphQLHandler := graphql.CreateHandler(defaultAPIList)
-
apiHandler, err := createHandler(cfg, defaultAPIList, httpHandler, wsHandler, graphQLHandler, nil)
if err != nil {
return err
}
- listener, httpAddr, err := node.StartHTTPEndpoint(httpEndpoint, cfg.HTTPTimeouts, apiHandler)
- if err != nil {
- return fmt.Errorf("could not start RPC api: %w", err)
- }
-
- if cfg.TCPServerEnabled {
- tcpEndpoint := fmt.Sprintf("%s:%d", cfg.TCPListenAddress, cfg.TCPPort)
- tcpListener, err := net.Listen("tcp", tcpEndpoint)
- if err != nil {
- return fmt.Errorf("could not start TCP Listener: %w", err)
+ if cfg.HttpServerEnabled {
+ httpEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.HttpListenAddress, cfg.HttpPort)
+ if cfg.HttpURL != "" {
+ httpEndpoint = cfg.HttpURL
}
- go func() {
- defer tcpListener.Close()
- err := srv.ServeListener(tcpListener)
- if err != nil {
- logger.Error("TCP Listener Fatal Error", "err", err)
- }
+ listener, httpAddr, err := node.StartHTTPEndpoint(httpEndpoint, &node.HttpEndpointConfig{
+ Timeouts: cfg.HTTPTimeouts,
+ }, apiHandler)
+ if err != nil {
+ return fmt.Errorf("could not start RPC api: %w", err)
+ }
+ info = append(info, "http.url", httpAddr)
+ defer func() {
+ shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
+ defer cancel()
+ _ = listener.Shutdown(shutdownCtx)
+ logger.Info("HTTP endpoint closed", "url", httpAddr)
}()
- logger.Info("TCP Endpoint opened", "url", tcpEndpoint)
}
-
- info := []interface{}{
- "url", httpAddr, "ws", cfg.WebsocketEnabled,
- "ws.compression", cfg.WebsocketCompression, "grpc", cfg.GRPCServerEnabled,
+ if cfg.HttpsURL != "" {
+ cfg.HttpsServerEnabled = true
+ }
+ if cfg.HttpsServerEnabled {
+ if cfg.HttpsPort == 0 {
+ cfg.HttpsPort = cfg.HttpPort + 363
+ }
+ httpsEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.HttpsListenAddress, cfg.HttpsPort)
+ if cfg.HttpsURL != "" {
+ httpsEndpoint = cfg.HttpsURL
+ }
+ listener, httpAddr, err := node.StartHTTPEndpoint(httpsEndpoint, &node.HttpEndpointConfig{
+ Timeouts: cfg.HTTPTimeouts,
+ HTTPS: true,
+ CertFile: cfg.HttpsCertfile,
+ KeyFile: cfg.HttpsKeyFile,
+ }, apiHandler)
+ if err != nil {
+ return fmt.Errorf("could not start RPC api: %w", err)
+ }
+ info = append(info, "https.url", httpAddr)
+ defer func() {
+ shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
+ defer cancel()
+ _ = listener.Shutdown(shutdownCtx)
+ logger.Info("HTTPS endpoint closed", "url", httpAddr)
+ }()
}
var (
@@ -634,26 +695,20 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp
}
go grpcServer.Serve(grpcListener)
info = append(info, "grpc.port", cfg.GRPCPort)
- }
- logger.Info("HTTP endpoint opened", info...)
-
- defer func() {
- srv.Stop()
- shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
- defer cancel()
- _ = listener.Shutdown(shutdownCtx)
- logger.Info("HTTP endpoint closed", "url", httpAddr)
-
- if cfg.GRPCServerEnabled {
- if cfg.GRPCHealthCheckEnabled {
- healthServer.Shutdown()
+ defer func() {
+ if cfg.GRPCServerEnabled {
+ if cfg.GRPCHealthCheckEnabled {
+ healthServer.Shutdown()
+ }
+ grpcServer.GracefulStop()
+ _ = grpcListener.Close()
+ logger.Info("GRPC endpoint closed", "url", grpcEndpoint)
}
- grpcServer.GracefulStop()
- _ = grpcListener.Close()
- logger.Info("GRPC endpoint closed", "url", grpcEndpoint)
- }
- }()
+ }()
+ }
+
+ logger.Info("JsonRpc endpoint opened", info...)
<-ctx.Done()
logger.Info("Exiting...")
return nil
@@ -755,7 +810,7 @@ func createHandler(cfg httpcfg.HttpCfg, apiList []rpc.API, httpHandler http.Hand
}
func createEngineListener(cfg httpcfg.HttpCfg, engineApi []rpc.API, logger log.Logger) (*http.Server, *rpc.Server, string, error) {
- engineHttpEndpoint := fmt.Sprintf("%s:%d", cfg.AuthRpcHTTPListenAddress, cfg.AuthRpcPort)
+ engineHttpEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.AuthRpcHTTPListenAddress, cfg.AuthRpcPort)
engineSrv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, true, logger)
@@ -779,7 +834,9 @@ func createEngineListener(cfg httpcfg.HttpCfg, engineApi []rpc.API, logger log.L
return nil, nil, "", err
}
- engineListener, engineAddr, err := node.StartHTTPEndpoint(engineHttpEndpoint, cfg.AuthRpcTimeouts, engineApiHandler)
+ engineListener, engineAddr, err := node.StartHTTPEndpoint(engineHttpEndpoint, &node.HttpEndpointConfig{
+ Timeouts: cfg.AuthRpcTimeouts,
+ }, engineApiHandler)
if err != nil {
return nil, nil, "", fmt.Errorf("could not start RPC api: %w", err)
}
diff --git a/cmd/rpcdaemon/cli/config_test.go b/cmd/rpcdaemon/cli/config_test.go
new file mode 100644
index 00000000000..c14c9cf9456
--- /dev/null
+++ b/cmd/rpcdaemon/cli/config_test.go
@@ -0,0 +1,21 @@
+package cli
+
+import (
+ "net/url"
+ "testing"
+
+ "github.com/stretchr/testify/require"
+)
+
+func TestParseSocketUrl(t *testing.T) {
+ t.Run("sock", func(t *testing.T) {
+ socketUrl, err := url.Parse("unix:///some/file/path.sock")
+ require.NoError(t, err)
+ require.EqualValues(t, "/some/file/path.sock", socketUrl.Host+socketUrl.EscapedPath())
+ })
+ t.Run("sock", func(t *testing.T) {
+ socketUrl, err := url.Parse("tcp://localhost:1234")
+ require.NoError(t, err)
+ require.EqualValues(t, "localhost:1234", socketUrl.Host+socketUrl.EscapedPath())
+ })
+}
diff --git a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go
index 63d4cb6a0ff..b2b2a99d091 100644
--- a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go
+++ b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go
@@ -10,37 +10,50 @@ import (
)
type HttpCfg struct {
- Enabled bool
- PrivateApiAddr string
+ Enabled bool
+
GraphQLEnabled bool
WithDatadir bool // Erigon's database can be read by separated processes on same machine - in read-only mode - with full support of transactions. It will share same "OS PageCache" with Erigon process.
DataDir string
Dirs datadir.Dirs
- HttpListenAddress string
AuthRpcHTTPListenAddress string
TLSCertfile string
TLSCACert string
TLSKeyFile string
- HttpPort int
- AuthRpcPort int
- HttpCORSDomain []string
- HttpVirtualHost []string
- AuthRpcVirtualHost []string
- HttpCompression bool
- API []string
- Gascap uint64
- MaxTraces uint64
- WebsocketEnabled bool
- WebsocketCompression bool
- RpcAllowListFilePath string
- RpcBatchConcurrency uint
- RpcStreamingDisable bool
- DBReadConcurrency int
- TraceCompatibility bool // Bug for bug compatibility for trace_ routines with OpenEthereum
- TxPoolApiAddr string
- StateCache kvcache.CoherentConfig
- Snap ethconfig.BlocksFreezing
- Sync ethconfig.Sync
+
+ HttpServerEnabled bool
+ HttpURL string
+ HttpListenAddress string
+ HttpPort int
+ HttpCORSDomain []string
+ HttpVirtualHost []string
+ AuthRpcVirtualHost []string
+ HttpCompression bool
+
+ HttpsServerEnabled bool
+ HttpsURL string
+ HttpsListenAddress string
+ HttpsPort int
+ HttpsCertfile string
+ HttpsKeyFile string
+
+ AuthRpcPort int
+ PrivateApiAddr string
+
+ API []string
+ Gascap uint64
+ MaxTraces uint64
+ WebsocketEnabled bool
+ WebsocketCompression bool
+ RpcAllowListFilePath string
+ RpcBatchConcurrency uint
+ RpcStreamingDisable bool
+ DBReadConcurrency int
+ TraceCompatibility bool // Bug for bug compatibility for trace_ routines with OpenEthereum
+ TxPoolApiAddr string
+ StateCache kvcache.CoherentConfig
+ Snap ethconfig.BlocksFreezing
+ Sync ethconfig.Sync
// GRPC server
GRPCServerEnabled bool
@@ -48,10 +61,9 @@ type HttpCfg struct {
GRPCPort int
GRPCHealthCheckEnabled bool
- // Raw TCP Server
- TCPServerEnabled bool
- TCPListenAddress string
- TCPPort int
+ // Socket Server
+ SocketServerEnabled bool
+ SocketListenUrl string
JWTSecretPath string // Engine API Authentication
TraceRequests bool // Always trace requests in INFO level
diff --git a/cmd/rpcdaemon/graphql/graph/helpers.go b/cmd/rpcdaemon/graphql/graph/helpers.go
index 4bc6c7da4e6..77b90c38607 100644
--- a/cmd/rpcdaemon/graphql/graph/helpers.go
+++ b/cmd/rpcdaemon/graphql/graph/helpers.go
@@ -3,6 +3,7 @@ package graph
import (
"encoding/hex"
"fmt"
+ hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil"
"reflect"
"strconv"
@@ -11,7 +12,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
)
@@ -21,16 +21,16 @@ func convertDataToStringP(abstractMap map[string]interface{}, field string) *str
switch v := abstractMap[field].(type) {
case int64:
result = strconv.FormatInt(v, 10)
- case *hexutil.Big:
+ case *hexutil2.Big:
if reflect.ValueOf(abstractMap[field]).IsZero() {
return nil
}
result = v.String()
case hexutility.Bytes:
result = v.String()
- case hexutil.Uint:
+ case hexutil2.Uint:
result = v.String()
- case hexutil.Uint64:
+ case hexutil2.Uint64:
result = v.String()
case *libcommon.Address:
if reflect.ValueOf(abstractMap[field]).IsZero() {
@@ -66,15 +66,15 @@ func convertDataToIntP(abstractMap map[string]interface{}, field string) *int {
var result int
switch v := abstractMap[field].(type) {
- case hexutil.Uint64:
- resultUint, err := hexutil.DecodeUint64(v.String())
+ case hexutil2.Uint64:
+ resultUint, err := hexutil2.DecodeUint64(v.String())
if err != nil {
result = 0
} else {
result = int(resultUint)
}
- case hexutil.Uint:
- resultUint, err := hexutil.DecodeUint64(v.String())
+ case hexutil2.Uint:
+ resultUint, err := hexutil2.DecodeUint64(v.String())
if err != nil {
result = 0
} else {
@@ -94,21 +94,21 @@ func convertDataToUint64P(abstractMap map[string]interface{}, field string) *uin
var result uint64
switch v := abstractMap[field].(type) {
- case hexutil.Uint64:
- resultUint, err := hexutil.DecodeUint64(v.String())
+ case hexutil2.Uint64:
+ resultUint, err := hexutil2.DecodeUint64(v.String())
if err != nil {
result = 0
} else {
result = resultUint
}
- case hexutil.Uint:
- resultUint, err := hexutil.DecodeUint64(v.String())
+ case hexutil2.Uint:
+ resultUint, err := hexutil2.DecodeUint64(v.String())
if err != nil {
result = 0
} else {
result = resultUint
}
- case *hexutil.Big:
+ case *hexutil2.Big:
result = v.ToInt().Uint64()
case int:
result = abstractMap[field].(uint64)
@@ -125,7 +125,7 @@ func convertDataToUint64P(abstractMap map[string]interface{}, field string) *uin
func convertStrHexToDec(hexString *string) *string {
var result string
- resUInt64, err := hexutil.DecodeUint64(*hexString)
+ resUInt64, err := hexutil2.DecodeUint64(*hexString)
if err != nil {
fmt.Println(err)
result = "0"
diff --git a/cmd/rpcdaemon/graphql/graph/schema.resolvers.go b/cmd/rpcdaemon/graphql/graph/schema.resolvers.go
index 14947154688..5f8630548b5 100644
--- a/cmd/rpcdaemon/graphql/graph/schema.resolvers.go
+++ b/cmd/rpcdaemon/graphql/graph/schema.resolvers.go
@@ -8,11 +8,11 @@ import (
"context"
"encoding/hex"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"strconv"
"strings"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/graphql/graph/model"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/cmd/rpcdaemon/health/health_test.go b/cmd/rpcdaemon/health/health_test.go
index 39c71c9cad1..a843923edfe 100644
--- a/cmd/rpcdaemon/health/health_test.go
+++ b/cmd/rpcdaemon/health/health_test.go
@@ -11,7 +11,8 @@ import (
"testing"
"time"
- "github.com/ledgerwatch/erigon/common/hexutil"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/cmd/rpcdaemon/health/interfaces.go b/cmd/rpcdaemon/health/interfaces.go
index c8bdca5dbf8..2fabf8d5de4 100644
--- a/cmd/rpcdaemon/health/interfaces.go
+++ b/cmd/rpcdaemon/health/interfaces.go
@@ -2,8 +2,8 @@ package health
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/cmd/rpctest/main.go b/cmd/rpctest/main.go
index e54e93163c4..5ce6a6c71ab 100644
--- a/cmd/rpctest/main.go
+++ b/cmd/rpctest/main.go
@@ -82,6 +82,19 @@ func main() {
}
with(benchEthGetBlockByHash, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest)
+ var benchEthGetBlockByNumber2Cmd = &cobra.Command{
+ Use: "benchEthGetBlockByNumber2",
+ Short: "",
+ Long: ``,
+ Run: func(cmd *cobra.Command, args []string) {
+ err := rpctest.BenchEthGetBlockByNumber2(erigonURL, gethURL, needCompare, latest, blockFrom, blockTo, recordFile, errorFile)
+ if err != nil {
+ logger.Error(err.Error())
+ }
+ },
+ }
+ with(benchEthGetBlockByNumber2Cmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest)
+
var benchEthGetTransactionByHashCmd = &cobra.Command{
Use: "benchEthGetTransactionByHash",
Short: "",
@@ -100,7 +113,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench1(erigonURL, gethURL, needCompare, fullTest, blockFrom, blockTo, recordFile)
+ err := rpctest.Bench1(erigonURL, gethURL, needCompare, fullTest, blockFrom, blockTo, recordFile)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
with(bench1Cmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord)
@@ -111,7 +127,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench2(erigonURL)
+ err := rpctest.Bench2(erigonURL)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
var bench3Cmd = &cobra.Command{
@@ -119,7 +138,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench3(erigonURL, gethURL)
+ err := rpctest.Bench3(erigonURL, gethURL)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
with(bench3Cmd, withErigonUrl, withGethUrl)
@@ -129,7 +151,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench4(erigonURL)
+ err := rpctest.Bench4(erigonURL)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
with(bench4Cmd, withErigonUrl)
@@ -139,7 +164,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench5(erigonURL)
+ err := rpctest.Bench5(erigonURL)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
with(bench5Cmd, withErigonUrl)
@@ -148,7 +176,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench6(erigonURL)
+ err := rpctest.Bench6(erigonURL)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
with(bench6Cmd, withErigonUrl)
@@ -158,7 +189,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench7(erigonURL, gethURL)
+ err := rpctest.Bench7(erigonURL, gethURL)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
with(bench7Cmd, withErigonUrl, withGethUrl)
@@ -178,7 +212,10 @@ func main() {
Short: "",
Long: ``,
Run: func(cmd *cobra.Command, args []string) {
- rpctest.Bench9(erigonURL, gethURL, needCompare)
+ err := rpctest.Bench9(erigonURL, gethURL, needCompare)
+ if err != nil {
+ logger.Error(err.Error())
+ }
},
}
with(bench9Cmd, withErigonUrl, withGethUrl, withNeedCompare)
@@ -328,6 +365,7 @@ func main() {
rootCmd.Flags().Uint64Var(&blockTo, "blockTo", 2101000, "Block number to end test generation at")
rootCmd.AddCommand(
+ benchEthGetBlockByNumber2Cmd,
benchEthGetBlockByHash,
benchEthCallCmd,
benchEthGetTransactionByHashCmd,
diff --git a/cmd/rpctest/rpctest/bench1.go b/cmd/rpctest/rpctest/bench1.go
index 400e64c19de..bacadf422bf 100644
--- a/cmd/rpctest/rpctest/bench1.go
+++ b/cmd/rpctest/rpctest/bench1.go
@@ -24,7 +24,7 @@ var routes map[string]string
// use false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon
//
// fullTest - if false - then call only methods which RPCDaemon currently supports
-func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFrom uint64, blockTo uint64, recordFile string) {
+func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFrom uint64, blockTo uint64, recordFileName string) error {
setRoutes(erigonURL, gethURL)
var client = &http.Client{
Timeout: time.Second * 600,
@@ -44,12 +44,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get block number: %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get block number: %v\n", res.Err)
}
if blockNumber.Error != nil {
- fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
- return
+ return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
}
fmt.Printf("Last block: %d\n", blockNumber.Number)
accounts := make(map[libcommon.Address]struct{})
@@ -61,8 +59,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err)
- return
+ return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err)
}
if b.Error != nil {
@@ -73,16 +70,13 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
var bg EthBlockByNumber
res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg)
if res.Err != nil {
- fmt.Printf("Could not retrieve block (geth) %d: %v\n", bn, res.Err)
- return
+ return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err)
}
if bg.Error != nil {
- fmt.Printf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message)
- return
+ return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message)
}
if !compareBlocks(&b, &bg) {
- fmt.Printf("Block difference for %d\n", bn)
- return
+ return fmt.Errorf("Block difference for %d\n", bn)
}
}
@@ -108,12 +102,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Erigon("debug_storageRangeAt", reqGen.storageRangeAt(b.Result.Hash, i, tx.To, *nextKey), &sr)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get storageRange (Erigon): %s: %v\n", tx.Hash, res.Err)
- return
+ return fmt.Errorf("Could not get storageRange (Erigon): %s: %v\n", tx.Hash, res.Err)
}
if sr.Error != nil {
- fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message)
- return
+ return fmt.Errorf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message)
}
for k, v := range sr.Result.Storage {
@@ -132,8 +124,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Geth("debug_storageRangeAt", reqGen.storageRangeAt(b.Result.Hash, i, tx.To, *nextKeyG), &srGeth)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get storageRange (geth): %s: %v\n", tx.Hash, res.Err)
- return
+ return fmt.Errorf("Could not get storageRange (geth): %s: %v\n", tx.Hash, res.Err)
}
if srGeth.Error != nil {
fmt.Printf("Error getting storageRange (geth): %d %s\n", srGeth.Error.Code, srGeth.Error.Message)
@@ -154,7 +145,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
printStorageRange(sm)
fmt.Printf("================smg\n")
printStorageRange(smg)
- return
+ return fmt.Errorf("Storage range different\n")
}
}
}
@@ -183,18 +174,15 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Geth("debug_traceTransaction", reqGen.traceTransaction(tx.Hash), &traceg)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not trace transaction (geth) %s: %v\n", tx.Hash, res.Err)
print(client, routes[Geth], reqGen.traceTransaction(tx.Hash))
- return
+ return fmt.Errorf("Could not trace transaction (geth) %s: %v\n", tx.Hash, res.Err)
}
if traceg.Error != nil {
- fmt.Printf("Error tracing transaction (geth): %d %s\n", traceg.Error.Code, traceg.Error.Message)
- return
+ return fmt.Errorf("Error tracing transaction (geth): %d %s\n", traceg.Error.Code, traceg.Error.Message)
}
if res.Err == nil && trace.Error == nil {
if !compareTraces(&trace, &traceg) {
- fmt.Printf("Different traces block %d, tx %s\n", bn, tx.Hash)
- return
+ return fmt.Errorf("Different traces block %d, tx %s\n", bn, tx.Hash)
}
}
}
@@ -204,32 +192,28 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Erigon("eth_getTransactionReceipt", reqGen.getTransactionReceipt(tx.Hash), &receipt)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Count not get receipt (Erigon): %s: %v\n", tx.Hash, res.Err)
print(client, routes[Erigon], reqGen.getTransactionReceipt(tx.Hash))
- return
+ return fmt.Errorf("Count not get receipt (Erigon): %s: %v\n", tx.Hash, res.Err)
}
if receipt.Error != nil {
- fmt.Printf("Error getting receipt (Erigon): %d %s\n", receipt.Error.Code, receipt.Error.Message)
- return
+ return fmt.Errorf("Error getting receipt (Erigon): %d %s\n", receipt.Error.Code, receipt.Error.Message)
}
if needCompare {
var receiptg EthReceipt
res = reqGen.Geth("eth_getTransactionReceipt", reqGen.getTransactionReceipt(tx.Hash), &receiptg)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Count not get receipt (geth): %s: %v\n", tx.Hash, res.Err)
print(client, routes[Geth], reqGen.getTransactionReceipt(tx.Hash))
- return
+ return fmt.Errorf("Count not get receipt (geth): %s: %v\n", tx.Hash, res.Err)
}
if receiptg.Error != nil {
- fmt.Printf("Error getting receipt (geth): %d %s\n", receiptg.Error.Code, receiptg.Error.Message)
- return
+ return fmt.Errorf("Error getting receipt (geth): %d %s\n", receiptg.Error.Code, receiptg.Error.Message)
}
if !compareReceipts(&receipt, &receiptg) {
fmt.Printf("Different receipts block %d, tx %s\n", bn, tx.Hash)
print(client, routes[Geth], reqGen.getTransactionReceipt(tx.Hash))
print(client, routes[Erigon], reqGen.getTransactionReceipt(tx.Hash))
- return
+ return fmt.Errorf("Receipts are different\n")
}
}
}
@@ -242,28 +226,23 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Erigon("eth_getBalance", reqGen.getBalance(b.Result.Miner, bn), &balance)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get account balance (Erigon): %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get account balance (Erigon): %v\n", res.Err)
}
if balance.Error != nil {
- fmt.Printf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message)
- return
+ return fmt.Errorf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message)
}
if needCompare {
var balanceg EthBalance
res = reqGen.Geth("eth_getBalance", reqGen.getBalance(b.Result.Miner, bn), &balanceg)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get account balance (geth): %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get account balance (geth): %v\n", res.Err)
}
if balanceg.Error != nil {
- fmt.Printf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message)
- return
+ return fmt.Errorf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message)
}
if !compareBalances(&balance, &balanceg) {
- fmt.Printf("Miner %x balance difference for block %d\n", b.Result.Miner, bn)
- return
+ return fmt.Errorf("Miner %x balance difference for block %d\n", b.Result.Miner, bn)
}
}
@@ -274,12 +253,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Erigon("debug_getModifiedAccountsByNumber", reqGen.getModifiedAccountsByNumber(prevBn, bn), &mag)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get modified accounts (Erigon): %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get modified accounts (Erigon): %v\n", res.Err)
}
if mag.Error != nil {
- fmt.Printf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message)
- return
+ return fmt.Errorf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message)
}
fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(mag.Result))
@@ -298,8 +275,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get accountRange (Erigon): %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get accountRange (Erigon): %v\n", res.Err)
}
if sr.Error != nil {
@@ -316,8 +292,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
res = reqGen.Geth("debug_accountRange", reqGen.accountRange(bn, pageGeth, 256), &srGeth)
resultsCh <- res
if res.Err != nil {
- fmt.Printf("Could not get accountRange geth: %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get accountRange geth: %v\n", res.Err)
}
if srGeth.Error != nil {
fmt.Printf("Error getting accountRange geth: %d %s\n", srGeth.Error.Code, srGeth.Error.Message)
@@ -332,14 +307,14 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro
fmt.Printf("Different next page keys: %x geth %x", page, pageGeth)
}
if !compareAccountRanges(accRangeErigon, accRangeGeth) {
- fmt.Printf("Different in account ranges tx\n")
- return
+ return fmt.Errorf("Different in account ranges tx\n")
}
}
}
prevBn = bn
}
}
+ return nil
}
// vegetaWrite (to be run as a goroutine) writing results of server calls into several files:
diff --git a/cmd/rpctest/rpctest/bench2.go b/cmd/rpctest/rpctest/bench2.go
index 74165c14220..7dd73402800 100644
--- a/cmd/rpctest/rpctest/bench2.go
+++ b/cmd/rpctest/rpctest/bench2.go
@@ -10,7 +10,7 @@ import (
"github.com/ledgerwatch/erigon/crypto"
)
-func Bench2(erigon_url string) {
+func Bench2(erigon_url string) error {
var client = &http.Client{
Timeout: time.Second * 600,
}
@@ -19,12 +19,10 @@ func Bench2(erigon_url string) {
blockNumTemplate := `{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":%d}`
var blockNumber EthBlockNumber
if err := post(client, erigon_url, fmt.Sprintf(blockNumTemplate, req_id), &blockNumber); err != nil {
- fmt.Printf("Could not get block number: %v\n", err)
- return
+ return fmt.Errorf("Could not get block number: %v\n", err)
}
if blockNumber.Error != nil {
- fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
- return
+ return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
}
lastBlock := blockNumber.Number
fmt.Printf("Last block: %d\n", lastBlock)
@@ -35,8 +33,7 @@ func Bench2(erigon_url string) {
blockByNumTemplate := `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}` //nolint
var b EthBlockByNumber
if err := post(client, erigon_url, fmt.Sprintf(blockByNumTemplate, bn, req_id), &b); err != nil {
- fmt.Printf("Could not retrieve block %d: %v\n", bn, err)
- return
+ return fmt.Errorf("Could not retrieve block %d: %v\n", bn, err)
}
if b.Error != nil {
fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message)
@@ -53,8 +50,7 @@ func Bench2(erigon_url string) {
for nextKey != nil {
var sr DebugStorageRange
if err := post(client, erigon_url, fmt.Sprintf(storageRangeTemplate, b.Result.Hash, i, tx.To, *nextKey, 1024, req_id), &sr); err != nil {
- fmt.Printf("Could not get storageRange: %x: %v\n", tx.Hash, err)
- return
+ return fmt.Errorf("Could not get storageRange: %x: %v\n", tx.Hash, err)
}
if sr.Error != nil {
fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message)
@@ -83,15 +79,14 @@ func Bench2(erigon_url string) {
accountRangeTemplate := `{"jsonrpc":"2.0","method":"debug_getModifiedAccountsByNumber","params":[%d, %d],"id":%d}` //nolint
var ma DebugModifiedAccounts
if err := post(client, erigon_url, fmt.Sprintf(accountRangeTemplate, prevBn, bn, req_id), &ma); err != nil {
- fmt.Printf("Could not get modified accounts: %v\n", err)
- return
+ return fmt.Errorf("Could not get modified accounts: %v\n", err)
}
if ma.Error != nil {
- fmt.Printf("Error getting modified accounts: %d %s\n", ma.Error.Code, ma.Error.Message)
- return
+ return fmt.Errorf("Error getting modified accounts: %d %s\n", ma.Error.Code, ma.Error.Message)
}
fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(ma.Result))
prevBn = bn
}
}
+ return nil
}
diff --git a/cmd/rpctest/rpctest/bench3.go b/cmd/rpctest/rpctest/bench3.go
index 317700750a5..5d4c959b809 100644
--- a/cmd/rpctest/rpctest/bench3.go
+++ b/cmd/rpctest/rpctest/bench3.go
@@ -11,7 +11,7 @@ import (
"github.com/ledgerwatch/erigon/core/state"
)
-func Bench3(erigon_url, geth_url string) {
+func Bench3(erigon_url, geth_url string) error {
var client = &http.Client{
Timeout: time.Second * 600,
}
@@ -30,8 +30,7 @@ func Bench3(erigon_url, geth_url string) {
encodedKey := base64.StdEncoding.EncodeToString(page)
var sr DebugAccountRange
if err := post(client, erigon_url, fmt.Sprintf(template, encodedKey, pageSize, req_id), &sr); err != nil {
- fmt.Printf("Could not get accountRange: %v\n", err)
- return
+ return fmt.Errorf("Could not get accountRange: %v\n", err)
}
if sr.Error != nil {
fmt.Printf("Error getting accountRange: %d %s\n", sr.Error.Code, sr.Error.Message)
@@ -51,9 +50,7 @@ func Bench3(erigon_url, geth_url string) {
encodedKey := base64.StdEncoding.EncodeToString(page)
var sr DebugAccountRange
if err := post(client, geth_url, fmt.Sprintf(template, encodedKey, pageSize, req_id), &sr); err != nil {
-
- fmt.Printf("Could not get accountRange: %v\n", err)
- return
+ return fmt.Errorf("Could not get accountRange: %v\n", err)
}
if sr.Error != nil {
fmt.Printf("Error getting accountRange: %d %s\n", sr.Error.Code, sr.Error.Message)
@@ -67,16 +64,14 @@ func Bench3(erigon_url, geth_url string) {
}
if !compareAccountRanges(accRangeTG, accRangeGeth) {
- fmt.Printf("Different in account ranges tx\n")
- return
+ return fmt.Errorf("Different in account ranges tx\n")
}
fmt.Println("debug_accountRanges... OK!")
template = `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}`
var b EthBlockByNumber
if err := post(client, erigon_url, fmt.Sprintf(template, 1720000, req_id), &b); err != nil {
- fmt.Printf("Could not retrieve block %d: %v\n", 1720000, err)
- return
+ return fmt.Errorf("Could not retrieve block %d: %v\n", 1720000, err)
}
if b.Error != nil {
fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message)
@@ -89,27 +84,23 @@ func Bench3(erigon_url, geth_url string) {
`
var trace EthTxTrace
if err := post(client, erigon_url, fmt.Sprintf(template, txhash, req_id), &trace); err != nil {
- fmt.Printf("Could not trace transaction %s: %v\n", txhash, err)
print(client, erigon_url, fmt.Sprintf(template, txhash, req_id))
- return
+ return fmt.Errorf("Could not trace transaction %s: %v\n", txhash, err)
}
if trace.Error != nil {
fmt.Printf("Error tracing transaction: %d %s\n", trace.Error.Code, trace.Error.Message)
}
var traceg EthTxTrace
if err := post(client, geth_url, fmt.Sprintf(template, txhash, req_id), &traceg); err != nil {
- fmt.Printf("Could not trace transaction g %s: %v\n", txhash, err)
print(client, geth_url, fmt.Sprintf(template, txhash, req_id))
- return
+ return fmt.Errorf("Could not trace transaction g %s: %v\n", txhash, err)
}
if traceg.Error != nil {
- fmt.Printf("Error tracing transaction g: %d %s\n", traceg.Error.Code, traceg.Error.Message)
- return
+ return fmt.Errorf("Error tracing transaction g: %d %s\n", traceg.Error.Code, traceg.Error.Message)
}
//print(client, erigon_url, fmt.Sprintf(template, txhash, req_id))
if !compareTraces(&trace, &traceg) {
- fmt.Printf("Different traces block %d, tx %s\n", 1720000, txhash)
- return
+ return fmt.Errorf("Different traces block %d, tx %s\n", 1720000, txhash)
}
}
to := libcommon.HexToAddress("0xbb9bc244d798123fde783fcc1c72d3bb8c189413")
@@ -125,8 +116,7 @@ func Bench3(erigon_url, geth_url string) {
for nextKey != nil {
var sr DebugStorageRange
if err := post(client, erigon_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &sr); err != nil {
- fmt.Printf("Could not get storageRange: %v\n", err)
- return
+ return fmt.Errorf("Could not get storageRange: %v\n", err)
}
if sr.Error != nil {
fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message)
@@ -144,8 +134,7 @@ func Bench3(erigon_url, geth_url string) {
for nextKey != nil {
var srg DebugStorageRange
if err := post(client, geth_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &srg); err != nil {
- fmt.Printf("Could not get storageRange g: %v\n", err)
- return
+ return fmt.Errorf("Could not get storageRange g: %v\n", err)
}
if srg.Error != nil {
fmt.Printf("Error getting storageRange g: %d %s\n", srg.Error.Code, srg.Error.Message)
@@ -159,8 +148,9 @@ func Bench3(erigon_url, geth_url string) {
}
fmt.Printf("storageRange g: %d\n", len(smg))
if !compareStorageRanges(sm, smg) {
- fmt.Printf("Different in storage ranges tx\n")
- return
+ return fmt.Errorf("Different in storage ranges tx\n")
}
+ return nil
+
}
diff --git a/cmd/rpctest/rpctest/bench4.go b/cmd/rpctest/rpctest/bench4.go
index 1d403049185..347490ce5a5 100644
--- a/cmd/rpctest/rpctest/bench4.go
+++ b/cmd/rpctest/rpctest/bench4.go
@@ -8,7 +8,7 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
)
-func Bench4(erigon_url string) {
+func Bench4(erigon_url string) error {
var client = &http.Client{
Timeout: time.Second * 600,
}
@@ -18,8 +18,7 @@ func Bench4(erigon_url string) {
template := `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}`
var b EthBlockByNumber
if err := post(client, erigon_url, fmt.Sprintf(template, 1720000, req_id), &b); err != nil {
- fmt.Printf("Could not retrieve block %d: %v\n", 1720000, err)
- return
+ return fmt.Errorf("Could not retrieve block %d: %v\n", 1720000, err)
}
if b.Error != nil {
fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message)
@@ -30,9 +29,8 @@ func Bench4(erigon_url string) {
template = `{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["%s"],"id":%d}`
var trace EthTxTrace
if err := post(client, erigon_url, fmt.Sprintf(template, txhash, req_id), &trace); err != nil {
- fmt.Printf("Could not trace transaction %s: %v\n", txhash, err)
print(client, erigon_url, fmt.Sprintf(template, txhash, req_id))
- return
+ return fmt.Errorf("Could not trace transaction %s: %v\n", txhash, err)
}
if trace.Error != nil {
fmt.Printf("Error tracing transaction: %d %s\n", trace.Error.Code, trace.Error.Message)
@@ -50,8 +48,7 @@ func Bench4(erigon_url string) {
for nextKey != nil {
var sr DebugStorageRange
if err := post(client, erigon_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &sr); err != nil {
- fmt.Printf("Could not get storageRange: %v\n", err)
- return
+ return fmt.Errorf("Could not get storageRange: %v\n", err)
}
if sr.Error != nil {
fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message)
@@ -64,4 +61,5 @@ func Bench4(erigon_url string) {
}
}
fmt.Printf("storageRange: %d\n", len(sm))
+ return nil
}
diff --git a/cmd/rpctest/rpctest/bench5.go b/cmd/rpctest/rpctest/bench5.go
index 2104bc9d6d2..4066df310dc 100644
--- a/cmd/rpctest/rpctest/bench5.go
+++ b/cmd/rpctest/rpctest/bench5.go
@@ -8,7 +8,7 @@ import (
"time"
)
-func Bench5(erigonURL string) {
+func Bench5(erigonURL string) error {
var client = &http.Client{
Timeout: time.Second * 600,
}
@@ -24,16 +24,15 @@ func Bench5(erigonURL string) {
for scanner.Scan() {
req_id++
if err = post(client, erigonURL, fmt.Sprintf(template, scanner.Text(), req_id), &receipt); err != nil {
- fmt.Printf("Count not get receipt: %s: %v\n", scanner.Text(), err)
- return
+ return fmt.Errorf("Count not get receipt: %s: %v\n", scanner.Text(), err)
}
if receipt.Error != nil {
- fmt.Printf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message)
- return
+ return fmt.Errorf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message)
}
}
err = scanner.Err()
if err != nil {
panic(err)
}
+ return nil
}
diff --git a/cmd/rpctest/rpctest/bench6.go b/cmd/rpctest/rpctest/bench6.go
index 825c8b5ebbc..f9fcc3c57ae 100644
--- a/cmd/rpctest/rpctest/bench6.go
+++ b/cmd/rpctest/rpctest/bench6.go
@@ -8,7 +8,7 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
)
-func Bench6(erigon_url string) {
+func Bench6(erigon_url string) error {
var client = &http.Client{
Timeout: time.Second * 600,
}
@@ -20,12 +20,10 @@ func Bench6(erigon_url string) {
`
var blockNumber EthBlockNumber
if err := post(client, erigon_url, fmt.Sprintf(template, req_id), &blockNumber); err != nil {
- fmt.Printf("Could not get block number: %v\n", err)
- return
+ return fmt.Errorf("Could not get block number: %v\n", err)
}
if blockNumber.Error != nil {
- fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
- return
+ return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
}
lastBlock := blockNumber.Number
fmt.Printf("Last block: %d\n", lastBlock)
@@ -38,8 +36,7 @@ func Bench6(erigon_url string) {
`
var b EthBlockByNumber
if err := post(client, erigon_url, fmt.Sprintf(template, bn, req_id), &b); err != nil {
- fmt.Printf("Could not retrieve block %d: %v\n", bn, err)
- return
+ return fmt.Errorf("Could not retrieve block %d: %v\n", bn, err)
}
if b.Error != nil {
fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message)
@@ -56,14 +53,13 @@ func Bench6(erigon_url string) {
`
var receipt EthReceipt
if err := post(client, erigon_url, fmt.Sprintf(template, tx.Hash, req_id), &receipt); err != nil {
- fmt.Printf("Count not get receipt: %s: %v\n", tx.Hash, err)
print(client, erigon_url, fmt.Sprintf(template, tx.Hash, req_id))
- return
+ return fmt.Errorf("Count not get receipt: %s: %v\n", tx.Hash, err)
}
if receipt.Error != nil {
- fmt.Printf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message)
- return
+ return fmt.Errorf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message)
}
}
}
+ return nil
}
diff --git a/cmd/rpctest/rpctest/bench7.go b/cmd/rpctest/rpctest/bench7.go
index 29c5e49a7e8..2a6dd6b49d5 100644
--- a/cmd/rpctest/rpctest/bench7.go
+++ b/cmd/rpctest/rpctest/bench7.go
@@ -8,7 +8,7 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
)
-func Bench7(erigonURL, gethURL string) {
+func Bench7(erigonURL, gethURL string) error {
setRoutes(erigonURL, gethURL)
var client = &http.Client{
Timeout: time.Second * 600,
@@ -34,8 +34,7 @@ func Bench7(erigonURL, gethURL string) {
for nextKey != nil {
var sr DebugStorageRange
if err := post(client, erigonURL, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, reqID), &sr); err != nil {
- fmt.Printf("Could not get storageRange: %v\n", err)
- return
+ return fmt.Errorf("Could not get storageRange: %v\n", err)
}
if sr.Error != nil {
fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message)
@@ -54,8 +53,7 @@ func Bench7(erigonURL, gethURL string) {
for nextKeyG != nil {
var srg DebugStorageRange
if err := post(client, gethURL, fmt.Sprintf(template, blockhash, i, to, *nextKeyG, 1024, reqID), &srg); err != nil {
- fmt.Printf("Could not get storageRange: %v\n", err)
- return
+ return fmt.Errorf("Could not get storageRange: %v\n", err)
}
if srg.Error != nil {
fmt.Printf("Error getting storageRange: %d %s\n", srg.Error.Code, srg.Error.Message)
@@ -76,7 +74,8 @@ func Bench7(erigonURL, gethURL string) {
printStorageRange(sm)
fmt.Printf("================smg\n")
printStorageRange(smg)
- return
+ return fmt.Errorf("storage are different")
}
fmt.Printf("storageRanges: %d\n", len(sm))
+ return nil
}
diff --git a/cmd/rpctest/rpctest/bench9.go b/cmd/rpctest/rpctest/bench9.go
index 7b2a4266ee4..9c06fef9697 100644
--- a/cmd/rpctest/rpctest/bench9.go
+++ b/cmd/rpctest/rpctest/bench9.go
@@ -11,7 +11,7 @@ import (
)
// bench9 tests eth_getProof
-func Bench9(erigonURL, gethURL string, needCompare bool) {
+func Bench9(erigonURL, gethURL string, needCompare bool) error {
setRoutes(erigonURL, gethURL)
var client = &http.Client{
Timeout: time.Second * 600,
@@ -26,12 +26,10 @@ func Bench9(erigonURL, gethURL string, needCompare bool) {
var blockNumber EthBlockNumber
res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber)
if res.Err != nil {
- fmt.Printf("Could not get block number: %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get block number: %v\n", res.Err)
}
if blockNumber.Error != nil {
- fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
- return
+ return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message)
}
lastBlock := blockNumber.Number
fmt.Printf("Last block: %d\n", lastBlock)
@@ -46,8 +44,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) {
res = reqGen.Erigon("debug_accountRange", reqGen.accountRange(bn, page, 256), &sr)
if res.Err != nil {
- fmt.Printf("Could not get accountRange (Erigon): %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get accountRange (Erigon): %v\n", res.Err)
}
if sr.Error != nil {
@@ -74,8 +71,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) {
}
res = reqGen.Erigon("eth_getProof", reqGen.getProof(bn, address, storageList), &proof)
if res.Err != nil {
- fmt.Printf("Could not get getProof (Erigon): %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get getProof (Erigon): %v\n", res.Err)
}
if proof.Error != nil {
fmt.Printf("Error getting getProof (Erigon): %d %s\n", proof.Error.Code, proof.Error.Message)
@@ -86,8 +82,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) {
reqGen.reqID++
res = reqGen.Geth("eth_getProof", reqGen.getProof(bn, address, storageList), &gethProof)
if res.Err != nil {
- fmt.Printf("Could not get getProof (geth): %v\n", res.Err)
- return
+ return fmt.Errorf("Could not get getProof (geth): %v\n", res.Err)
}
if gethProof.Error != nil {
fmt.Printf("Error getting getProof (geth): %d %s\n", gethProof.Error.Code, gethProof.Error.Message)
@@ -100,4 +95,5 @@ func Bench9(erigonURL, gethURL string, needCompare bool) {
}
}
}
+ return nil
}
diff --git a/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go b/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go
new file mode 100644
index 00000000000..28988042f6e
--- /dev/null
+++ b/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go
@@ -0,0 +1,108 @@
+package rpctest
+
+import (
+ "bufio"
+ "fmt"
+ "net/http"
+ "os"
+ "time"
+)
+
+// BenchEthGetBlockByNumber compares response of Erigon with Geth
+// but also can be used for comparing RPCDaemon with Geth or infura
+// parameters:
+// needCompare - if false - doesn't call Erigon and doesn't compare responses
+//
+// false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon
+// recordFile stores all eth_call returned with success
+// errorFile stores information when erigon and geth doesn't return same data
+func BenchEthGetBlockByNumber2(erigonURL, gethURL string, needCompare, latest bool, blockFrom, blockTo uint64, recordFileName string, errorFileName string) error {
+ setRoutes(erigonURL, gethURL)
+ var client = &http.Client{
+ Timeout: time.Second * 600,
+ }
+
+ var rec *bufio.Writer
+ var errs *bufio.Writer
+ var resultsCh chan CallResult = nil
+ var nBlocks = 0
+
+ if errorFileName != "" {
+ f, err := os.Create(errorFileName)
+ if err != nil {
+ return fmt.Errorf("Cannot create file %s for errorFile: %v\n", errorFileName, err)
+ }
+ defer f.Close()
+ errs = bufio.NewWriter(f)
+ defer errs.Flush()
+ }
+
+ if recordFileName != "" {
+ frec, errRec := os.Create(recordFileName)
+ if errRec != nil {
+ return fmt.Errorf("Cannot create file %s for errorFile: %v\n", recordFileName, errRec)
+ }
+ defer frec.Close()
+ rec = bufio.NewWriter(frec)
+ defer rec.Flush()
+ }
+
+ if !needCompare {
+ resultsCh = make(chan CallResult, 1000)
+ defer close(resultsCh)
+ go vegetaWrite(true, []string{"eth_getBlockByNumber"}, resultsCh)
+ }
+ var res CallResult
+
+ reqGen := &RequestGenerator{
+ client: client,
+ }
+
+ reqGen.reqID++
+
+ for bn := blockFrom; bn <= blockTo; bn++ {
+ reqGen.reqID++
+ var b EthBlockByNumber
+ res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b)
+ if res.Err != nil {
+ return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err)
+ }
+
+ if b.Error != nil {
+ return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message)
+ }
+
+ if needCompare {
+ var bg EthBlockByNumber
+ res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg)
+ if res.Err != nil {
+ return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err)
+ }
+ if bg.Error != nil {
+ return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message)
+ }
+ if !compareBlocks(&b, &bg) {
+ if rec != nil {
+ fmt.Fprintf(rec, "Block difference for block=%d\n", bn)
+ rec.Flush()
+ continue
+ } else {
+ return fmt.Errorf("Block difference for %d\n", bn)
+ }
+ }
+ }
+
+ reqGen.reqID++
+ nBlocks++
+ var request string
+ request = reqGen.getBlockByNumber(bn, true)
+ errCtx := fmt.Sprintf(" bn=%d ", bn)
+
+ if err := requestAndCompare(request, "eth_getBlockByNumber", errCtx, reqGen, needCompare, rec, errs, resultsCh); err != nil {
+ return err
+ }
+
+ fmt.Println("\nProcessed Blocks: ", nBlocks)
+ }
+ return nil
+}
diff --git a/cmd/rpctest/rpctest/bench_tracecallmany.go b/cmd/rpctest/rpctest/bench_tracecallmany.go
index a3599af7c0c..ba2294e9e6d 100644
--- a/cmd/rpctest/rpctest/bench_tracecallmany.go
+++ b/cmd/rpctest/rpctest/bench_tracecallmany.go
@@ -3,14 +3,13 @@ package rpctest
import (
"bufio"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"net/http"
"os"
"time"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// BenchTraceCallMany compares response of Erigon with Geth
diff --git a/cmd/rpctest/rpctest/request_generator.go b/cmd/rpctest/rpctest/request_generator.go
index 4d7ae95b047..67c699529f9 100644
--- a/cmd/rpctest/rpctest/request_generator.go
+++ b/cmd/rpctest/rpctest/request_generator.go
@@ -3,6 +3,7 @@ package rpctest
import (
"encoding/base64"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"net/http"
"strings"
"time"
@@ -11,8 +12,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
type CallResult struct {
diff --git a/cmd/rpctest/rpctest/type.go b/cmd/rpctest/rpctest/type.go
index bfdcbcc5050..61368932762 100644
--- a/cmd/rpctest/rpctest/type.go
+++ b/cmd/rpctest/rpctest/type.go
@@ -3,10 +3,11 @@ package rpctest
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/state"
)
diff --git a/cmd/sentinel/cli/cliSettings.go b/cmd/sentinel/cli/cliSettings.go
index 74f3664f5a5..fc0c076fb36 100644
--- a/cmd/sentinel/cli/cliSettings.go
+++ b/cmd/sentinel/cli/cliSettings.go
@@ -7,17 +7,17 @@ import (
"strings"
"time"
+ "github.com/ledgerwatch/erigon/cl/clparams"
+ "github.com/ledgerwatch/erigon/cl/phase1/core/state"
+
common2 "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/datadir"
- "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb"
- "github.com/ledgerwatch/erigon/cl/phase1/core/state"
"github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/cmd/utils"
"github.com/urfave/cli/v2"
- "github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags"
"github.com/ledgerwatch/erigon/turbo/logging"
@@ -28,7 +28,6 @@ type ConsensusClientCliCfg struct {
GenesisCfg *clparams.GenesisConfig
BeaconCfg *clparams.BeaconChainConfig
NetworkCfg *clparams.NetworkConfig
- BeaconDataCfg *rawdb.BeaconDataConfig
Port uint `json:"port"`
Addr string `json:"address"`
ServerAddr string `json:"server_addr"`
@@ -131,7 +130,6 @@ func SetupConsensusClientCfg(ctx *cli.Context) (*ConsensusClientCliCfg, error) {
cfg.CheckpointUri = clparams.GetCheckpointSyncEndpoint(cfg.NetworkType)
}
cfg.Chaindata = ctx.String(flags.ChaindataFlag.Name)
- cfg.BeaconDataCfg = rawdb.BeaconDataConfigurations[ctx.String(flags.BeaconDBModeFlag.Name)]
// Process bootnodes
if ctx.String(flags.BootnodesFlag.Name) != "" {
cfg.NetworkCfg.BootNodes = common2.CliString2Array(ctx.String(flags.BootnodesFlag.Name))
diff --git a/cmd/sentinel/main.go b/cmd/sentinel/main.go
index ec604b71124..47481917632 100644
--- a/cmd/sentinel/main.go
+++ b/cmd/sentinel/main.go
@@ -16,6 +16,8 @@ package main
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon/cl/sentinel"
+ "github.com/ledgerwatch/erigon/cl/sentinel/service"
"os"
"github.com/ledgerwatch/log/v3"
@@ -23,8 +25,6 @@ import (
lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli"
"github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service"
sentinelapp "github.com/ledgerwatch/erigon/turbo/app"
)
diff --git a/cmd/sentinel/sentinel/communication/send_request.go b/cmd/sentinel/sentinel/communication/send_request.go
deleted file mode 100644
index 8561a051d6a..00000000000
--- a/cmd/sentinel/sentinel/communication/send_request.go
+++ /dev/null
@@ -1,80 +0,0 @@
-package communication
-
-import (
- "context"
- "fmt"
- "io"
- "time"
-
- "github.com/libp2p/go-libp2p/core/host"
- "github.com/libp2p/go-libp2p/core/network"
- "github.com/libp2p/go-libp2p/core/peer"
- "github.com/libp2p/go-libp2p/core/protocol"
-)
-
-var NoRequestHandlers = map[string]bool{
- MetadataProtocolV1: true,
- MetadataProtocolV2: true,
-}
-
-type response struct {
- data []byte
- code byte
- err error
-}
-
-func SendRequestRawToPeer(ctx context.Context, host host.Host, data []byte, topic string, peerId peer.ID) ([]byte, byte, error) {
- nctx, cn := context.WithTimeout(ctx, 5*time.Second)
- defer cn()
- stream, err := writeRequestRaw(host, nctx, data, peerId, topic)
- if err != nil {
- return nil, 189, err
- }
- defer stream.Close()
-
- retryVerifyTicker := time.NewTicker(10 * time.Millisecond)
- defer retryVerifyTicker.Stop()
-
- res := verifyResponse(stream, peerId)
- for res.err != nil && res.err == network.ErrReset {
- select {
- case <-retryVerifyTicker.C:
- res = verifyResponse(stream, peerId)
- case <-nctx.Done():
- stream.Reset()
- return nil, 0, nctx.Err()
- }
- }
-
- return res.data, res.code, res.err
-
-}
-
-func writeRequestRaw(host host.Host, ctx context.Context, data []byte, peerId peer.ID, topic string) (network.Stream, error) {
- stream, err := host.NewStream(ctx, peerId, protocol.ID(topic))
- if err != nil {
- return nil, fmt.Errorf("failed to begin stream, err=%s", err)
- }
-
- if _, ok := NoRequestHandlers[topic]; !ok {
- if _, err := stream.Write(data); err != nil {
- return nil, err
- }
- }
-
- return stream, stream.CloseWrite()
-}
-
-func verifyResponse(stream network.Stream, peerId peer.ID) (resp response) {
- code := make([]byte, 1)
- _, resp.err = stream.Read(code)
- if resp.err != nil {
- return
- }
- resp.code = code[0]
- resp.data, resp.err = io.ReadAll(stream)
- if resp.err != nil {
- return
- }
- return
-}
diff --git a/cmd/sentinel/sentinel/gossip.go b/cmd/sentinel/sentinel/gossip.go
deleted file mode 100644
index 2f38d3b7836..00000000000
--- a/cmd/sentinel/sentinel/gossip.go
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- Copyright 2022 Erigon-Lightclient contributors
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-
-package sentinel
-
-import (
- "context"
- "errors"
- "fmt"
- "sync"
-
- "github.com/ledgerwatch/log/v3"
- pubsub "github.com/libp2p/go-libp2p-pubsub"
- "github.com/libp2p/go-libp2p/core/peer"
-)
-
-// GossipSubscription abstracts a gossip subscription to write decoded structs.
-type GossipSubscription struct {
- gossip_topic GossipTopic
- host peer.ID
- ch chan *pubsub.Message
- ctx context.Context
-
- topic *pubsub.Topic
- sub *pubsub.Subscription
-
- cf context.CancelFunc
- rf pubsub.RelayCancelFunc
-
- setup sync.Once
- stopCh chan struct{}
-}
-
-func (sub *GossipSubscription) Listen() (err error) {
- sub.setup.Do(func() {
- sub.stopCh = make(chan struct{}, 3)
- sub.sub, err = sub.topic.Subscribe()
- if err != nil {
- err = fmt.Errorf("failed to begin topic %s subscription, err=%w", sub.topic.String(), err)
- return
- }
- var sctx context.Context
- sctx, sub.cf = context.WithCancel(sub.ctx)
- go sub.run(sctx, sub.sub, sub.sub.Topic())
- })
- return nil
-}
-
-// calls the cancel func for the subscriber and closes the topic and sub
-func (s *GossipSubscription) Close() {
- s.stopCh <- struct{}{}
- if s.cf != nil {
- s.cf()
- }
- if s.rf != nil {
- s.rf()
- }
- if s.sub != nil {
- s.sub.Cancel()
- s.sub = nil
- }
- if s.topic != nil {
- s.topic.Close()
- s.topic = nil
- }
-}
-
-// this is a helper to begin running the gossip subscription.
-// function should not be used outside of the constructor for gossip subscription
-func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topic string) {
- defer func() {
- if r := recover(); r != nil {
- log.Error("[Sentinel Gossip] Message Handler Crashed", "err", r)
- }
- }()
- for {
- select {
- case <-ctx.Done():
- return
- case <-s.stopCh:
- return
- default:
- msg, err := sub.Next(ctx)
- if err != nil {
- if errors.Is(err, context.Canceled) {
- return
- }
- log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topic", topic)
- return
- }
- if msg.GetFrom() == s.host {
- continue
- }
- s.ch <- msg
- }
- }
-}
-
-func (g *GossipSubscription) Publish(data []byte) error {
- return g.topic.Publish(g.ctx, data)
-}
diff --git a/cmd/sentinel/sentinel/peers/manager.go b/cmd/sentinel/sentinel/peers/manager.go
deleted file mode 100644
index 90fd0619aff..00000000000
--- a/cmd/sentinel/sentinel/peers/manager.go
+++ /dev/null
@@ -1,139 +0,0 @@
-package peers
-
-import (
- "context"
- "sync"
- "time"
-
- "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru"
- "github.com/ledgerwatch/erigon/metrics"
- "github.com/libp2p/go-libp2p/core/host"
- "github.com/libp2p/go-libp2p/core/peer"
-)
-
-const (
- maxBadPeers = 50000
- maxPeerRecordSize = 1000
- DefaultMaxPeers = 33
- MaxBadResponses = 50
-)
-
-func newPeer() *Peer {
- return &Peer{
- lastTouched: time.Now(),
- working: make(chan struct{}),
- }
-}
-
-type Manager struct {
- host host.Host
- peers *lru.Cache[peer.ID, *Peer]
- peerTimeout time.Duration
-
- mu sync.Mutex
-}
-
-func NewManager(ctx context.Context, host host.Host) *Manager {
- c, err := lru.New[peer.ID, *Peer]("beacon_peer_manager", 500)
- if err != nil {
- panic(err)
- }
- m := &Manager{
- peerTimeout: 8 * time.Hour,
- peers: c,
- host: host,
- }
- go m.run(ctx)
- return m
-}
-
-func (m *Manager) getPeer(id peer.ID) (peer *Peer) {
- m.mu.Lock()
- p, ok := m.peers.Get(id)
- if !ok {
- p = &Peer{
- pid: id,
- working: make(chan struct{}, 1),
- m: m,
- Penalties: 0,
- Banned: false,
- }
- m.peers.Add(id, p)
- }
- p.lastTouched = time.Now()
- m.mu.Unlock()
- return p
-}
-func (m *Manager) CtxPeer(ctx context.Context, id peer.ID, fn func(peer *Peer)) error {
- p := m.getPeer(id)
- select {
- case p.working <- struct{}{}:
- case <-ctx.Done():
- return ctx.Err()
- }
- fn(p)
- <-p.working
- return nil
-}
-
-func (m *Manager) TryPeer(id peer.ID, fn func(peer *Peer, ok bool)) {
- p := m.getPeer(id)
- select {
- case p.working <- struct{}{}:
- default:
- fn(nil, false)
- return
- }
- fn(p, true)
- <-p.working
-}
-
-// WithPeer will get the peer with id and run your lambda with it. it will update the last queried time
-// It will do all synchronization and so you can use the peer thread safe inside
-func (m *Manager) WithPeer(id peer.ID, fn func(peer *Peer)) {
- if fn == nil {
- return
- }
- p := m.getPeer(id)
- p.working <- struct{}{}
- defer func() {
- <-p.working
- }()
- fn(p)
-}
-
-func (m *Manager) run(ctx context.Context) {
- m1 := time.NewTicker(1 * time.Hour)
- for {
- select {
- case <-m1.C:
- m.gc()
- case <-ctx.Done():
- m1.Stop()
- return
- }
- }
-}
-
-// any extra GC policies that the lru does not suffice.
-// maybe we dont need
-func (m *Manager) gc() {
- m.mu.Lock()
- defer m.mu.Unlock()
- t := metrics.NewHistTimer("beacon_peer_manager_gc_time")
- defer t.PutSince()
- deleted := 0
- saw := 0
- n := time.Now()
- for _, k := range m.peers.Keys() {
- v, ok := m.peers.Get(k)
- if !ok {
- continue
- }
- saw = saw + 1
- if n.Sub(v.lastTouched) > m.peerTimeout {
- deleted = deleted + 1
- m.peers.Remove(k)
- }
- }
-}
diff --git a/cmd/sentinel/sentinel/peers/peer.go b/cmd/sentinel/sentinel/peers/peer.go
deleted file mode 100644
index 62cfbbbfb69..00000000000
--- a/cmd/sentinel/sentinel/peers/peer.go
+++ /dev/null
@@ -1,114 +0,0 @@
-package peers
-
-import (
- "strings"
- "time"
-
- "github.com/ledgerwatch/log/v3"
- "github.com/libp2p/go-libp2p/core/peer"
-)
-
-// Record Peer data.
-type Peer struct {
- Penalties int
- Banned bool
- InRequest bool
-
- // request info
- lastRequest time.Time
- successCount int
- useCount int
- // gc data
- lastTouched time.Time
- // acts as the mutex. channel used to avoid use of TryLock
- working chan struct{}
- // peer id
- pid peer.ID
- busy bool
- // backref to the manager that owns this peer
- m *Manager
-}
-
-func (p *Peer) ID() peer.ID {
- return p.pid
-}
-func (p *Peer) Penalize() {
- log.Trace("[Sentinel Peers] peer penalized", "peer-id", p.pid)
- p.Penalties++
-}
-
-func (p *Peer) Forgive() {
- log.Trace("[Sentinel Peers] peer forgiven", "peer-id", p.pid)
- if p.Penalties > 0 {
- p.Penalties--
- }
-}
-
-func (p *Peer) MarkUsed() {
- p.useCount++
- p.busy = true
- log.Trace("[Sentinel Peers] peer used", "peer-id", p.pid, "uses", p.useCount)
- p.lastRequest = time.Now()
-}
-
-func (p *Peer) MarkUnused() {
- p.busy = false
-}
-
-func (p *Peer) MarkReplied() {
- p.successCount++
- log.Trace("[Sentinel Peers] peer replied", "peer-id", p.pid, "uses", p.useCount, "success", p.successCount)
-}
-
-func (p *Peer) IsAvailable() (available bool) {
- if p.Banned {
- return false
- }
- if p.Penalties > MaxBadResponses {
- return false
- }
-
- return !p.busy
-}
-
-func (p *Peer) IsBad() (bad bool) {
- if p.Banned {
- bad = true
- return
- }
- bad = p.Penalties > MaxBadResponses
- return
-}
-
-var skipReasons = []string{
- "bad handshake",
- "context",
- "security protocol",
- "connect:",
- "dial backoff",
-}
-
-func anySetInString(set []string, in string) bool {
- for _, v := range skipReasons {
- if strings.Contains(in, v) {
- return true
- }
- }
- return false
-}
-
-func (p *Peer) Disconnect(reason ...string) {
- rzn := strings.Join(reason, " ")
- if !anySetInString(skipReasons, rzn) {
- log.Trace("[Sentinel Peers] disconnecting from peer", "peer-id", p.pid, "reason", strings.Join(reason, " "))
- }
- p.m.host.Peerstore().RemovePeer(p.pid)
- p.m.host.Network().ClosePeer(p.pid)
- p.Penalties = 0
-}
-func (p *Peer) Ban(reason ...string) {
- log.Trace("[Sentinel Peers] bad peers has been banned", "peer-id", p.pid, "reason", strings.Join(reason, " "))
- p.Banned = true
- p.Disconnect(reason...)
- return
-}
diff --git a/cmd/sentry/main.go b/cmd/sentry/main.go
index 146ee737baf..abd86dca1a9 100644
--- a/cmd/sentry/main.go
+++ b/cmd/sentry/main.go
@@ -8,9 +8,9 @@ import (
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/spf13/cobra"
- "github.com/ledgerwatch/erigon/cmd/sentry/sentry"
"github.com/ledgerwatch/erigon/cmd/utils"
"github.com/ledgerwatch/erigon/common/paths"
+ "github.com/ledgerwatch/erigon/p2p/sentry"
"github.com/ledgerwatch/erigon/turbo/debug"
"github.com/ledgerwatch/erigon/turbo/logging"
node2 "github.com/ledgerwatch/erigon/turbo/node"
diff --git a/cmd/state/exec3/state_recon.go b/cmd/state/exec3/state_recon.go
index e34e12fe1b6..9adf47df366 100644
--- a/cmd/state/exec3/state_recon.go
+++ b/cmd/state/exec3/state_recon.go
@@ -17,7 +17,6 @@ import (
libstate "github.com/ledgerwatch/erigon-lib/state"
"github.com/ledgerwatch/erigon/cmd/state/exec22"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/state"
@@ -150,7 +149,7 @@ func (fw *FillWorker) FillCode(codeCollector, plainContractCollector *etl.Collec
copy(compositeKey, key)
if len(val) > 0 {
- codeHash, err := common.HashData(val)
+ codeHash, err := libcommon.HashData(val)
if err != nil {
return err
}
diff --git a/cmd/state/verify/check_indexes.go b/cmd/state/verify/check_indexes.go
index c3966ffd365..bc13606f8d4 100644
--- a/cmd/state/verify/check_indexes.go
+++ b/cmd/state/verify/check_indexes.go
@@ -3,13 +3,13 @@ package verify
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"time"
"github.com/ledgerwatch/erigon-lib/kv/bitmapdb"
"github.com/ledgerwatch/erigon-lib/kv/mdbx"
"github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
)
func CheckIndex(ctx context.Context, chaindata string, changeSetBucket string, indexBucket string) error {
diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go
index 38e93e2ca78..a8236b51694 100644
--- a/cmd/utils/flags.go
+++ b/cmd/utils/flags.go
@@ -26,7 +26,11 @@ import (
"strconv"
"strings"
+ "github.com/ledgerwatch/erigon/cl/clparams"
+
"github.com/c2h5oh/datasize"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/cmp"
"github.com/ledgerwatch/erigon-lib/common/datadir"
@@ -40,7 +44,6 @@ import (
"github.com/spf13/pflag"
"github.com/urfave/cli/v2"
- "github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cmd/downloader/downloadernat"
"github.com/ledgerwatch/erigon/cmd/utils/flags"
common2 "github.com/ledgerwatch/erigon/common"
@@ -56,7 +59,6 @@ import (
"github.com/ledgerwatch/erigon/p2p/nat"
"github.com/ledgerwatch/erigon/p2p/netutil"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
)
// These are all the command line flags we support.
@@ -303,7 +305,12 @@ var (
}
HTTPEnabledFlag = cli.BoolFlag{
Name: "http",
- Usage: "HTTP-RPC server (enabled by default). Use --http=false to disable it",
+ Usage: "JSON-RPC server (enabled by default). Use --http=false to disable it",
+ Value: true,
+ }
+ HTTPServerEnabledFlag = cli.BoolFlag{
+ Name: "http.enabled",
+ Usage: "JSON-RPC HTTP server (enabled by default). Use --http.enabled=false to disable it",
Value: true,
}
HTTPListenAddrFlag = cli.StringFlag{
@@ -387,7 +394,7 @@ var (
DBReadConcurrencyFlag = cli.IntFlag{
Name: "db.read.concurrency",
Usage: "Does limit amount of parallel db reads. Default: equal to GOMAXPROCS (or number of CPU)",
- Value: cmp.Max(10, runtime.GOMAXPROCS(-1)*8),
+ Value: cmp.Min(cmp.Max(10, runtime.GOMAXPROCS(-1)*16), 9_000),
}
RpcAccessListFlag = cli.StringFlag{
Name: "rpc.accessList",
@@ -831,9 +838,21 @@ var (
SilkwormPathFlag = cli.StringFlag{
Name: "silkworm.path",
- Usage: "Path to the silkworm_api library (enables embedded Silkworm execution)",
+ Usage: "Path to the Silkworm library",
Value: "",
}
+ SilkwormExecutionFlag = cli.BoolFlag{
+ Name: "silkworm.exec",
+ Usage: "Enable Silkworm block execution",
+ }
+ SilkwormRpcDaemonFlag = cli.BoolFlag{
+ Name: "silkworm.rpcd",
+ Usage: "Enable embedded Silkworm RPC daemon",
+ }
+ SilkwormSentryFlag = cli.BoolFlag{
+ Name: "silkworm.sentry",
+ Usage: "Enable embedded Silkworm Sentry service",
+ }
)
var MetricFlags = []cli.Flag{&MetricsEnabledFlag, &MetricsHTTPFlag, &MetricsPortFlag}
@@ -1024,6 +1043,7 @@ func NewP2PConfig(
return nil, fmt.Errorf("invalid nat option %s: %w", natSetting, err)
}
cfg.NAT = natif
+ cfg.NATSpec = natSetting
return cfg, nil
}
@@ -1072,11 +1092,13 @@ func setListenAddress(ctx *cli.Context, cfg *p2p.Config) {
// setNAT creates a port mapper from command line flags.
func setNAT(ctx *cli.Context, cfg *p2p.Config) {
if ctx.IsSet(NATFlag.Name) {
- natif, err := nat.Parse(ctx.String(NATFlag.Name))
+ natSetting := ctx.String(NATFlag.Name)
+ natif, err := nat.Parse(natSetting)
if err != nil {
Fatalf("Option %s: %v", NATFlag.Name, err)
}
cfg.NAT = natif
+ cfg.NATSpec = natSetting
}
}
@@ -1154,7 +1176,6 @@ func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config, nodeName, datadir string, l
}
ethPeers := cfg.MaxPeers
- cfg.Name = nodeName
logger.Info("Maximum peer count", "ETH", ethPeers, "total", cfg.MaxPeers)
if netrestrict := ctx.String(NetrestrictFlag.Name); netrestrict != "" {
@@ -1453,10 +1474,12 @@ func setWhitelist(ctx *cli.Context, cfg *ethconfig.Config) {
}
func setSilkworm(ctx *cli.Context, cfg *ethconfig.Config) {
- cfg.SilkwormEnabled = ctx.IsSet(SilkwormPathFlag.Name)
- if cfg.SilkwormEnabled {
- cfg.SilkwormPath = ctx.String(SilkwormPathFlag.Name)
+ cfg.SilkwormPath = ctx.String(SilkwormPathFlag.Name)
+ if ctx.IsSet(SilkwormExecutionFlag.Name) {
+ cfg.SilkwormExecution = ctx.Bool(SilkwormExecutionFlag.Name)
}
+ cfg.SilkwormRpcDaemon = ctx.Bool(SilkwormRpcDaemonFlag.Name)
+ cfg.SilkwormSentry = ctx.Bool(SilkwormSentryFlag.Name)
}
// CheckExclusive verifies that only a single instance of the provided flags was
@@ -1536,7 +1559,12 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C
}
logger.Info("torrent verbosity", "level", lvl.LogString())
version := "erigon: " + params.VersionWithCommit(params.GitCommit)
- cfg.Downloader, err = downloadercfg2.New(cfg.Dirs, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), ctx.StringSlice(TorrentDownloadSlotsFlag.Name), ctx.String(WebSeedsFlag.Name))
+ chain := ctx.String(ChainFlag.Name)
+ webseedsList := libcommon.CliString2Array(ctx.String(WebSeedsFlag.Name))
+ if known, ok := snapcfg.KnownWebseeds[chain]; ok {
+ webseedsList = append(webseedsList, known...)
+ }
+ cfg.Downloader, err = downloadercfg2.New(cfg.Dirs, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), ctx.StringSlice(TorrentDownloadSlotsFlag.Name), webseedsList, chain)
if err != nil {
panic(err)
}
@@ -1564,7 +1592,6 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C
setSilkworm(ctx, cfg)
cfg.Ethstats = ctx.String(EthStatsURLFlag.Name)
- cfg.P2PEnabled = len(nodeConfig.P2P.SentryAddr) == 0
cfg.HistoryV3 = ctx.Bool(HistoryV3Flag.Name)
if ctx.IsSet(NetworkIdFlag.Name) {
cfg.NetworkID = ctx.Uint64(NetworkIdFlag.Name)
@@ -1613,7 +1640,7 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C
}
case networkname.DevChainName:
if !ctx.IsSet(NetworkIdFlag.Name) {
- cfg.NetworkID = 1337
+ cfg.NetworkID = params.NetworkIDByChainName(chain)
}
// Create new developer account or reuse existing one
diff --git a/cmd/verkle/main.go b/cmd/verkle/main.go
index bed2e4e59c2..eb87ace88be 100644
--- a/cmd/verkle/main.go
+++ b/cmd/verkle/main.go
@@ -5,6 +5,7 @@ import (
"encoding/binary"
"flag"
"fmt"
+ "github.com/ledgerwatch/erigon/cl/utils"
"os"
"time"
@@ -16,7 +17,6 @@ import (
"github.com/ledgerwatch/log/v3"
"go.uber.org/zap/buffer"
- "github.com/ledgerwatch/erigon/cl/utils"
"github.com/ledgerwatch/erigon/cmd/verkle/verkletrie"
"github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/types/accounts"
diff --git a/cmd/verkle/verkletrie/pedersen_hashstate.go b/cmd/verkle/verkletrie/pedersen_hashstate.go
index f04561e4017..a56a15ac75b 100644
--- a/cmd/verkle/verkletrie/pedersen_hashstate.go
+++ b/cmd/verkle/verkletrie/pedersen_hashstate.go
@@ -234,7 +234,7 @@ func RegeneratePedersenCode(outTx kv.RwTx, readTx kv.Tx, workers uint64, verkleW
jobs <- ®eneratePedersenCodeJob{
address: libcommon.BytesToAddress(k),
- code: common.CopyBytes(code),
+ code: libcommon.CopyBytes(code),
}
select {
case <-logInterval.C:
diff --git a/cmd/verkle/verkletrie/verkle_tree_writer.go b/cmd/verkle/verkletrie/verkle_tree_writer.go
index 08f1acaa282..cd7cde8024a 100644
--- a/cmd/verkle/verkletrie/verkle_tree_writer.go
+++ b/cmd/verkle/verkletrie/verkle_tree_writer.go
@@ -198,7 +198,7 @@ func (v *VerkleTreeWriter) CommitVerkleTreeFromScratch() (libcommon.Hash, error)
if len(val) == 0 {
return next(k, nil, nil)
}
- if err := root.InsertOrdered(common.CopyBytes(k), common.CopyBytes(val), func(node verkle.VerkleNode) {
+ if err := root.InsertOrdered(libcommon.CopyBytes(k), libcommon.CopyBytes(val), func(node verkle.VerkleNode) {
rootHash := node.Commitment().Bytes()
encodedNode, err := node.Serialize()
if err != nil {
@@ -256,7 +256,7 @@ func (v *VerkleTreeWriter) CommitVerkleTree(root libcommon.Hash) (libcommon.Hash
logInterval := time.NewTicker(30 * time.Second)
if err := v.collector.Load(v.db, kv.VerkleTrie, func(key []byte, value []byte, _ etl.CurrentTableReader, next etl.LoadNextFunc) error {
if len(value) > 0 {
- if err := rootNode.Insert(common.CopyBytes(key), common.CopyBytes(value), resolverFunc); err != nil {
+ if err := rootNode.Insert(libcommon.CopyBytes(key), libcommon.CopyBytes(value), resolverFunc); err != nil {
return err
}
insertions++
diff --git a/cmd/verkle/verkletrie/workers.go b/cmd/verkle/verkletrie/workers.go
index 5b3695ba6d5..6be189ae1f6 100644
--- a/cmd/verkle/verkletrie/workers.go
+++ b/cmd/verkle/verkletrie/workers.go
@@ -6,7 +6,6 @@ import (
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/turbo/trie/vtree"
)
@@ -149,16 +148,16 @@ func pedersenCodeWorker(ctx context.Context, logPrefix string, in chan *regenera
currentKey := vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(0))
// Write code chunks
for i := 0; i < len(chunkedCode); i += 32 {
- chunks = append(chunks, common.CopyBytes(chunkedCode[i:i+32]))
+ chunks = append(chunks, libcommon.CopyBytes(chunkedCode[i:i+32]))
if currentKey[31]+offset < currentKey[31] || offsetOverflow {
currentKey = vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(uint64(i)/32))
- chunkKeys = append(chunkKeys, common.CopyBytes(currentKey))
+ chunkKeys = append(chunkKeys, libcommon.CopyBytes(currentKey))
offset = 1
offsetOverflow = false
} else {
- codeKey := common.CopyBytes(currentKey)
+ codeKey := libcommon.CopyBytes(currentKey)
codeKey[31] += offset
- chunkKeys = append(chunkKeys, common.CopyBytes(codeKey))
+ chunkKeys = append(chunkKeys, libcommon.CopyBytes(codeKey))
offset += 1
// If offset overflows, handle it.
offsetOverflow = offset == 0
@@ -207,8 +206,8 @@ func incrementalAccountWorker(ctx context.Context, logPrefix string, in chan *re
currentKey := vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(0))
// Write code chunks
for i := 0; i < len(chunkedCode); i += 32 {
- chunks = append(chunks, common.CopyBytes(chunkedCode[i:i+32]))
- codeKey := common.CopyBytes(currentKey)
+ chunks = append(chunks, libcommon.CopyBytes(chunkedCode[i:i+32]))
+ codeKey := libcommon.CopyBytes(currentKey)
if currentKey[31]+offset < currentKey[31] || offsetOverflow {
currentKey = vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(uint64(i)/32))
chunkKeys = append(chunkKeys, codeKey)
diff --git a/common/bitutil/compress_test.go b/common/bitutil/compress_test.go
index d797498ca3a..ab4bd7ebb74 100644
--- a/common/bitutil/compress_test.go
+++ b/common/bitutil/compress_test.go
@@ -18,12 +18,11 @@ package bitutil
import (
"bytes"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/rand"
"testing"
"github.com/ledgerwatch/log/v3"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// Tests that data bitset encoding and decoding works and is bijective.
diff --git a/common/bytes.go b/common/bytes.go
index 1c7662af796..728ccd0fe23 100644
--- a/common/bytes.go
+++ b/common/bytes.go
@@ -20,6 +20,7 @@ package common
import (
"bytes"
"encoding/hex"
+ "github.com/ledgerwatch/erigon-lib/common"
)
// FromHex returns the bytes represented by the hexadecimal string s.
@@ -31,18 +32,7 @@ func FromHex(s string) []byte {
if len(s)%2 == 1 {
s = "0" + s
}
- return Hex2Bytes(s)
-}
-
-// CopyBytes returns an exact copy of the provided bytes.
-func CopyBytes(b []byte) (copiedBytes []byte) {
- if b == nil {
- return nil
- }
- copiedBytes = make([]byte, len(b))
- copy(copiedBytes, b)
-
- return
+ return common.Hex2Bytes(s)
}
// has0xPrefix validates str begins with '0x' or '0X'.
@@ -85,12 +75,6 @@ func RightPadBytes(slice []byte, l int) []byte {
return padded
}
-// Hex2Bytes returns the bytes represented by the hexadecimal string str.
-func Hex2Bytes(str string) []byte {
- h, _ := hex.DecodeString(str)
- return h
-}
-
// LeftPadBytes zero-pads slice to the left up to length l.
func LeftPadBytes(slice []byte, l int) []byte {
if l <= len(slice) {
diff --git a/common/bytes_test.go b/common/bytes_test.go
index 0e3ec974ee4..723f23fa79c 100644
--- a/common/bytes_test.go
+++ b/common/bytes_test.go
@@ -18,13 +18,14 @@ package common
import (
"bytes"
+ "github.com/ledgerwatch/erigon-lib/common"
"testing"
)
func TestCopyBytes(t *testing.T) {
input := []byte{1, 2, 3, 4}
- v := CopyBytes(input)
+ v := common.CopyBytes(input)
if !bytes.Equal(v, []byte{1, 2, 3, 4}) {
t.Fatal("not equal after copy")
}
diff --git a/common/changeset/storage_changeset_test.go b/common/changeset/storage_changeset_test.go
index 02a5966a1eb..bed671ebbc5 100644
--- a/common/changeset/storage_changeset_test.go
+++ b/common/changeset/storage_changeset_test.go
@@ -3,6 +3,7 @@ package changeset
import (
"bytes"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/rand"
"reflect"
"strconv"
@@ -16,7 +17,6 @@ import (
"github.com/stretchr/testify/require"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
)
const (
@@ -30,7 +30,7 @@ func getDefaultIncarnation() uint64 { return defaultIncarnation }
func getRandomIncarnation() uint64 { return rand.Uint64() }
func hashValueGenerator(j int) []byte {
- val, _ := common.HashData([]byte("val" + strconv.Itoa(j)))
+ val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(j)))
return val.Bytes()
}
@@ -40,7 +40,7 @@ func emptyValueGenerator(j int) []byte {
func getTestDataAtIndex(i, j int, inc uint64) []byte {
address := libcommon.HexToAddress(fmt.Sprintf("0xBe828AD8B538D1D691891F6c725dEdc5989abBc%d", i))
- key, _ := common.HashData([]byte("key" + strconv.Itoa(j)))
+ key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(j)))
return dbutils.PlainGenerateCompositeStorageKey(address.Bytes(), inc, key.Bytes())
}
@@ -317,8 +317,8 @@ func BenchmarkDecodeNewStorage(t *testing.B) {
var err error
for i := 0; i < numOfElements; i++ {
address := []byte("0xa4e69cebbf4f8f3a1c6e493a6983d8a5879d22057a7c73b00e105d7c7e21ef" + strconv.Itoa(i))
- key, _ := common.HashData([]byte("key" + strconv.Itoa(i)))
- val, _ := common.HashData([]byte("val" + strconv.Itoa(i)))
+ key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(i)))
+ val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(i)))
err = ch.Add(dbutils.PlainGenerateCompositeStorageKey(address, rand.Uint64(), key[:]), val.Bytes())
if err != nil {
t.Fatal(err)
@@ -347,8 +347,8 @@ func BenchmarkEncodeNewStorage(t *testing.B) {
var err error
for i := 0; i < numOfElements; i++ {
address := []byte("0xa4e69cebbf4f8f3a1c6e493a6983d8a5879d22057a7c73b00e105d7c7e21ef" + strconv.Itoa(i))
- key, _ := common.HashData([]byte("key" + strconv.Itoa(i)))
- val, _ := common.HashData([]byte("val" + strconv.Itoa(i)))
+ key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(i)))
+ val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(i)))
err = ch.Add(dbutils.PlainGenerateCompositeStorageKey(address, rand.Uint64(), key[:]), val.Bytes())
if err != nil {
t.Fatal(err)
diff --git a/common/hexutil/json_example_test.go b/common/hexutil/json_example_test.go
deleted file mode 100644
index c256b412e39..00000000000
--- a/common/hexutil/json_example_test.go
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2017 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
-package hexutil_test
-
-import (
- "encoding/json"
- "fmt"
-
- "github.com/ledgerwatch/erigon-lib/common/hexutility"
-)
-
-type MyType [5]byte
-
-func (v *MyType) UnmarshalText(input []byte) error {
- return hexutility.UnmarshalFixedText("MyType", input, v[:])
-}
-
-func (v MyType) String() string {
- return hexutility.Bytes(v[:]).String()
-}
-
-func ExampleUnmarshalFixedText() {
- var v1, v2 MyType
- fmt.Println("v1 error:", json.Unmarshal([]byte(`"0x01"`), &v1))
- fmt.Println("v2 error:", json.Unmarshal([]byte(`"0x0101010101"`), &v2))
- fmt.Println("v2:", v2)
- // Output:
- // v1 error: hex string has length 2, want 10 for MyType
- // v2 error:
- // v2: 0x0101010101
-}
diff --git a/common/math/big_test.go b/common/math/big_test.go
index c01863024ab..5ef9e13d3ba 100644
--- a/common/math/big_test.go
+++ b/common/math/big_test.go
@@ -19,10 +19,9 @@ package math
import (
"bytes"
"encoding/hex"
+ "github.com/ledgerwatch/erigon-lib/common"
"math/big"
"testing"
-
- "github.com/ledgerwatch/erigon/common"
)
func TestHexOrDecimal256(t *testing.T) {
diff --git a/common/paths/paths.go b/common/paths/paths.go
index 7731ea5f953..51c0976350a 100644
--- a/common/paths/paths.go
+++ b/common/paths/paths.go
@@ -7,7 +7,7 @@ import (
"runtime"
"strings"
- "github.com/ledgerwatch/erigon/params/networkname"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
"github.com/ledgerwatch/log/v3"
)
diff --git a/common/sorted.go b/common/sorted.go
deleted file mode 100644
index fb2e665971f..00000000000
--- a/common/sorted.go
+++ /dev/null
@@ -1,27 +0,0 @@
-package common
-
-import (
- "golang.org/x/exp/constraints"
- "golang.org/x/exp/slices"
-)
-
-func SortedKeys[K constraints.Ordered, V any](m map[K]V) []K {
- keys := make([]K, len(m))
- i := 0
- for k := range m {
- keys[i] = k
- i++
- }
- slices.Sort(keys)
- return keys
-}
-
-func RemoveDuplicatesFromSorted[T constraints.Ordered](slice []T) []T {
- for i := 1; i < len(slice); i++ {
- if slice[i] == slice[i-1] {
- slice = append(slice[:i], slice[i+1:]...)
- i--
- }
- }
- return slice
-}
diff --git a/common/types.go b/common/types.go
index e296ed887de..21d58434ccd 100644
--- a/common/types.go
+++ b/common/types.go
@@ -22,14 +22,13 @@ import (
"encoding/json"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"reflect"
"strings"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon-lib/common/length"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// Lengths of hashes and addresses in bytes.
diff --git a/consensus/aura/aura.go b/consensus/aura/aura.go
index 47767c84860..23cb7947370 100644
--- a/consensus/aura/aura.go
+++ b/consensus/aura/aura.go
@@ -31,7 +31,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/clique"
"github.com/ledgerwatch/erigon/consensus/ethash"
@@ -268,7 +267,7 @@ func NewAuRa(spec *chain.AuRaConfig, db kv.RwDB) (*AuRa, error) {
StepDuration: auraParams.StepDurations[0],
}
durations = append(durations, durInfo)
- times := common.SortedKeys(auraParams.StepDurations)
+ times := libcommon.SortedKeys(auraParams.StepDurations)
for i := 1; i < len(auraParams.StepDurations); i++ { // skip first
time := times[i]
dur := auraParams.StepDurations[time]
diff --git a/consensus/aura/contract_abi.go b/consensus/aura/contract_abi.go
index 7f806f515d8..4fff77a2df3 100644
--- a/consensus/aura/contract_abi.go
+++ b/consensus/aura/contract_abi.go
@@ -9,7 +9,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/accounts/abi"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/aura/contracts"
)
@@ -112,7 +111,7 @@ func withdrawalAbi() abi.ABI {
}
func getCertifier(registrar libcommon.Address, syscall consensus.SystemCall) *libcommon.Address {
- hashedKey, err := common.HashData([]byte("service_transaction_checker"))
+ hashedKey, err := libcommon.HashData([]byte("service_transaction_checker"))
if err != nil {
panic(err)
}
diff --git a/consensus/bor/bor.go b/consensus/bor/bor.go
index 2ad78f6a120..b9434fa9e2b 100644
--- a/consensus/bor/bor.go
+++ b/consensus/bor/bor.go
@@ -17,9 +17,11 @@ import (
"github.com/google/btree"
lru "github.com/hashicorp/golang-lru/arc/v2"
+ "github.com/ledgerwatch/erigon/eth/ethconfig/estimate"
"github.com/ledgerwatch/log/v3"
"github.com/xsleonard/go-merkle"
"golang.org/x/crypto/sha3"
+ "golang.org/x/sync/errgroup"
"github.com/ledgerwatch/erigon-lib/chain"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -570,11 +572,14 @@ func (c *Bor) verifyHeader(chain consensus.ChainHeaderReader, header *types.Head
// Verify that the gas limit is <= 2^63-1
gasCap := uint64(0x7fffffffffffffff)
-
if header.GasLimit > gasCap {
return fmt.Errorf("invalid gasLimit: have %v, max %v", header.GasLimit, gasCap)
}
+ if header.WithdrawalsHash != nil {
+ return consensus.ErrUnexpectedWithdrawals
+ }
+
// All basic checks passed, verify cascading fields
return c.verifyCascadingFields(chain, header, parents)
}
@@ -636,10 +641,6 @@ func (c *Bor) verifyCascadingFields(chain consensus.ChainHeaderReader, header *t
return err
}
- if header.WithdrawalsHash != nil {
- return consensus.ErrUnexpectedWithdrawals
- }
-
if parent.Time+c.config.CalculatePeriod(number) > header.Time {
return ErrInvalidTimestamp
}
@@ -737,10 +738,25 @@ func (c *Bor) initFrozenSnapshot(chain consensus.ChainHeaderReader, number uint6
c.logger.Info("Stored proposer snapshot to disk", "number", 0, "hash", hash)
- initialHeaders := make([]*types.Header, 0, 128)
+ g := errgroup.Group{}
+ g.SetLimit(estimate.AlmostAllCPUs())
+ defer g.Wait()
+
+ batchSize := 128 // must be < inmemorySignatures
+ initialHeaders := make([]*types.Header, 0, batchSize)
for i := uint64(1); i <= number; i++ {
header := chain.GetHeaderByNumber(i)
+ {
+ // `snap.apply` bottleneck - is recover of signer.
+ // to speedup: recover signer in background goroutines and save in `sigcache`
+ // `batchSize` < `inmemorySignatures`: means all current batch will fit in cache - and `snap.apply` will find it there.
+ snap := snap
+ g.Go(func() error {
+ _, _ = ecrecover(header, snap.sigcache, snap.config)
+ return nil
+ })
+ }
initialHeaders = append(initialHeaders, header)
if len(initialHeaders) == cap(initialHeaders) {
snap, err = snap.apply(initialHeaders, c.logger)
@@ -1030,10 +1046,12 @@ func (c *Bor) Finalize(config *chain.Config, header *types.Header, state *state.
txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal,
chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger,
) (types.Transactions, types.Receipts, error) {
- var err error
-
headerNumber := header.Number.Uint64()
+ if withdrawals != nil || header.WithdrawalsHash != nil {
+ return nil, nil, consensus.ErrUnexpectedWithdrawals
+ }
+
if isSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) {
cx := statefull.ChainContext{Chain: chain, Bor: c}
// check and commit span
@@ -1044,14 +1062,14 @@ func (c *Bor) Finalize(config *chain.Config, header *types.Header, state *state.
if c.blockReader != nil {
// commit states
- if err = c.CommitStates(state, header, cx, syscall); err != nil {
+ if err := c.CommitStates(state, header, cx, syscall); err != nil {
c.logger.Error("Error while committing states", "err", err)
return nil, types.Receipts{}, err
}
}
}
- if err = c.changeContractCodeIfNeeded(headerNumber, state); err != nil {
+ if err := c.changeContractCodeIfNeeded(headerNumber, state); err != nil {
c.logger.Error("Error changing contract code", "err", err)
return nil, types.Receipts{}, err
}
@@ -1093,6 +1111,11 @@ func (c *Bor) FinalizeAndAssemble(chainConfig *chain.Config, header *types.Heade
// stateSyncData := []*types.StateSyncData{}
headerNumber := header.Number.Uint64()
+
+ if withdrawals != nil || header.WithdrawalsHash != nil {
+ return nil, nil, nil, consensus.ErrUnexpectedWithdrawals
+ }
+
if isSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) {
cx := statefull.ChainContext{Chain: chain, Bor: c}
@@ -1191,12 +1214,6 @@ func (c *Bor) Seal(chain consensus.ChainHeaderReader, block *types.Block, result
// wiggle was already accounted for in header.Time, this is just for logging
wiggle := time.Duration(successionNumber) * time.Duration(c.config.CalculateBackupMultiplier(number)) * time.Second
- // temp for testing
- if wiggle > 0 {
- wiggle = 500 * time.Millisecond
- }
- // temp for testing
-
// Sign all the things!
sighash, err := signFn(signer, accounts.MimetypeBor, BorRLP(header, c.config))
if err != nil {
diff --git a/consensus/bor/finality/bor_verifier.go b/consensus/bor/finality/bor_verifier.go
index b96ed42ba6e..f78f3532e6e 100644
--- a/consensus/bor/finality/bor_verifier.go
+++ b/consensus/bor/finality/bor_verifier.go
@@ -5,11 +5,11 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"github.com/ledgerwatch/erigon/consensus/bor/finality/generics"
"github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist"
"github.com/ledgerwatch/erigon/core/rawdb"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/log/v3"
)
diff --git a/consensus/bor/finality/whitelist/checkpoint.go b/consensus/bor/finality/whitelist/checkpoint.go
index 5e23eee398c..1f7a1c12c9b 100644
--- a/consensus/bor/finality/whitelist/checkpoint.go
+++ b/consensus/bor/finality/whitelist/checkpoint.go
@@ -2,9 +2,9 @@ package whitelist
import (
"github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb"
"github.com/ledgerwatch/erigon/core/types"
- "github.com/ledgerwatch/erigon/metrics"
)
type checkpoint struct {
diff --git a/consensus/bor/finality/whitelist/milestone.go b/consensus/bor/finality/whitelist/milestone.go
index 4d78758b2f1..d0a91229da6 100644
--- a/consensus/bor/finality/whitelist/milestone.go
+++ b/consensus/bor/finality/whitelist/milestone.go
@@ -2,10 +2,10 @@ package whitelist
import (
"github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"github.com/ledgerwatch/erigon/consensus/bor/finality/flags"
"github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb"
"github.com/ledgerwatch/erigon/core/types"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/log/v3"
)
diff --git a/consensus/bor/finality/whitelist_helpers.go b/consensus/bor/finality/whitelist_helpers.go
index 6c3b4a35a42..64e750ccffc 100644
--- a/consensus/bor/finality/whitelist_helpers.go
+++ b/consensus/bor/finality/whitelist_helpers.go
@@ -19,7 +19,7 @@ var (
// latest milestone from the local heimdall.
errMilestone = errors.New("failed to fetch latest milestone")
- ErrNotInRejectedList = errors.New("milestoneID doesn't exist in rejected list")
+ ErrNotInRejectedList = errors.New("MilestoneID not in rejected list")
)
// fetchWhitelistCheckpoint fetches the latest checkpoint from it's local heimdall
diff --git a/consensus/bor/heimdall/client.go b/consensus/bor/heimdall/client.go
index 4869e8059c2..6fa9e1082a5 100644
--- a/consensus/bor/heimdall/client.go
+++ b/consensus/bor/heimdall/client.go
@@ -5,6 +5,7 @@ import (
"encoding/json"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"io"
"net/http"
"net/url"
@@ -15,7 +16,6 @@ import (
"github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint"
"github.com/ledgerwatch/erigon/consensus/bor/heimdall/milestone"
"github.com/ledgerwatch/erigon/consensus/bor/heimdall/span"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/log/v3"
)
diff --git a/consensus/bor/heimdall/metrics.go b/consensus/bor/heimdall/metrics.go
index 8f3f42e7f86..235cdf83ff1 100644
--- a/consensus/bor/heimdall/metrics.go
+++ b/consensus/bor/heimdall/metrics.go
@@ -2,9 +2,8 @@ package heimdall
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"time"
-
- "github.com/ledgerwatch/erigon/metrics"
)
type (
diff --git a/consensus/bor/heimdall/span/testValidators.go b/consensus/bor/heimdall/span/testValidators.go
index 8c00117dca5..29cf1cc2e6a 100644
--- a/consensus/bor/heimdall/span/testValidators.go
+++ b/consensus/bor/heimdall/span/testValidators.go
@@ -1,9 +1,9 @@
package span
import (
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/consensus/bor/valset"
- "github.com/ledgerwatch/erigon/params/networkname"
)
// NetworkNameVals is a map of network name to validator set for tests/devnets
diff --git a/consensus/bor/heimdallgrpc/state_sync.go b/consensus/bor/heimdallgrpc/state_sync.go
index 3cf93dc906a..e1b49e67d93 100644
--- a/consensus/bor/heimdallgrpc/state_sync.go
+++ b/consensus/bor/heimdallgrpc/state_sync.go
@@ -6,7 +6,6 @@ import (
"io"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/consensus/bor/clerk"
proto "github.com/maticnetwork/polyproto/heimdall"
)
@@ -46,7 +45,7 @@ func (h *HeimdallGRPCClient) StateSyncEvents(ctx context.Context, fromID uint64,
EventRecord: clerk.EventRecord{
ID: event.ID,
Contract: libcommon.HexToAddress(event.Contract),
- Data: common.Hex2Bytes(event.Data[2:]),
+ Data: libcommon.Hex2Bytes(event.Data[2:]),
TxHash: libcommon.HexToHash(event.TxHash),
LogIndex: event.LogIndex,
ChainID: event.ChainID,
diff --git a/consensus/clique/clique.go b/consensus/clique/clique.go
index afd33850838..6efe46f21ae 100644
--- a/consensus/clique/clique.go
+++ b/consensus/clique/clique.go
@@ -22,6 +22,8 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"io"
"math/big"
"math/rand"
@@ -38,9 +40,7 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/debug"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core/state"
"github.com/ledgerwatch/erigon/core/types"
diff --git a/consensus/clique/snapshot.go b/consensus/clique/snapshot.go
index c478d6ec3b1..fb34b19c680 100644
--- a/consensus/clique/snapshot.go
+++ b/consensus/clique/snapshot.go
@@ -21,6 +21,7 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"sort"
"time"
@@ -33,7 +34,6 @@ import (
"github.com/ledgerwatch/log/v3"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/consensus/ethash/algorithm.go b/consensus/ethash/algorithm.go
index 3c20c22439e..6ac5737b672 100644
--- a/consensus/ethash/algorithm.go
+++ b/consensus/ethash/algorithm.go
@@ -18,6 +18,7 @@ package ethash
import (
"encoding/binary"
+ common2 "github.com/ledgerwatch/erigon-lib/common"
"hash"
"math/big"
"reflect"
@@ -135,7 +136,7 @@ func seedHash(block uint64) []byte {
return seed
}
- h := common.NewHasher()
+ h := common2.NewHasher()
for i := 0; i < int(block/epochLength); i++ {
h.Sha.Reset()
@@ -151,7 +152,7 @@ func seedHash(block uint64) []byte {
}
}
- common.ReturnHasherToPool(h)
+ common2.ReturnHasherToPool(h)
return seed
}
diff --git a/consensus/ethash/algorithm_test.go b/consensus/ethash/algorithm_test.go
index 722c83fadc3..d9fa5b1d400 100644
--- a/consensus/ethash/algorithm_test.go
+++ b/consensus/ethash/algorithm_test.go
@@ -19,13 +19,12 @@ package ethash
import (
"bytes"
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"io"
"reflect"
"testing"
"github.com/ledgerwatch/erigon-lib/common/length"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// prepare converts an ethash cache or dataset from a byte stream into the internal
diff --git a/consensus/ethash/api.go b/consensus/ethash/api.go
index 7ee7d81b19f..0ecd3a819d2 100644
--- a/consensus/ethash/api.go
+++ b/consensus/ethash/api.go
@@ -18,10 +18,10 @@ package ethash
import (
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/consensus/ethash/ethash_test.go b/consensus/ethash/ethash_test.go
index 805ebe9cf60..c0566237c68 100644
--- a/consensus/ethash/ethash_test.go
+++ b/consensus/ethash/ethash_test.go
@@ -17,13 +17,13 @@
package ethash
import (
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"testing"
"time"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/consensus/ethash/sealer.go b/consensus/ethash/sealer.go
index 76a00da872f..d020147ff5a 100644
--- a/consensus/ethash/sealer.go
+++ b/consensus/ethash/sealer.go
@@ -21,6 +21,7 @@ import (
"context"
crand "crypto/rand"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math"
"math/big"
"math/rand"
@@ -32,7 +33,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/core/blockchain.go b/core/blockchain.go
index 111ca5527eb..cea5bcc9b3f 100644
--- a/core/blockchain.go
+++ b/core/blockchain.go
@@ -23,6 +23,8 @@ import (
"math/big"
"time"
+ "github.com/ledgerwatch/erigon-lib/metrics"
+
"golang.org/x/crypto/sha3"
"golang.org/x/exp/slices"
@@ -39,7 +41,6 @@ import (
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/core/vm"
"github.com/ledgerwatch/erigon/core/vm/evmtypes"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/erigon/rlp"
)
diff --git a/core/chain_makers.go b/core/chain_makers.go
index 207d10feb2d..9034b5ee4d5 100644
--- a/core/chain_makers.go
+++ b/core/chain_makers.go
@@ -28,7 +28,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/merge"
"github.com/ledgerwatch/erigon/consensus/misc"
@@ -365,7 +364,7 @@ func GenerateChain(config *chain.Config, parent *types.Block, engine consensus.E
if daoBlock := config.DAOForkBlock; daoBlock != nil {
limit := new(big.Int).Add(daoBlock, params.DAOForkExtraRange)
if b.header.Number.Cmp(daoBlock) >= 0 && b.header.Number.Cmp(limit) < 0 {
- b.header.Extra = common.CopyBytes(params.DAOForkBlockExtra)
+ b.header.Extra = libcommon.CopyBytes(params.DAOForkBlockExtra)
}
}
if b.engine != nil {
@@ -416,7 +415,7 @@ func GenerateChain(config *chain.Config, parent *types.Block, engine consensus.E
return &ChainPack{Headers: headers, Blocks: blocks, Receipts: receipts, TopBlock: blocks[n-1]}, nil
}
-func hashKeyAndAddIncarnation(k []byte, h *common.Hasher) (newK []byte, err error) {
+func hashKeyAndAddIncarnation(k []byte, h *libcommon.Hasher) (newK []byte, err error) {
if len(k) == length.Addr {
newK = make([]byte, length.Hash)
} else {
@@ -521,8 +520,8 @@ func CalcHashRootForTests(tx kv.RwTx, header *types.Header, histV4 bool) (hashRo
if err != nil {
return hashRoot, err
}
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
for k, v, err := c.First(); k != nil; k, v, err = c.Next() {
if err != nil {
return hashRoot, fmt.Errorf("interate over plain state: %w", err)
@@ -532,11 +531,11 @@ func CalcHashRootForTests(tx kv.RwTx, header *types.Header, histV4 bool) (hashRo
return hashRoot, fmt.Errorf("insert hashed key: %w", err)
}
if len(k) > length.Addr {
- if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil {
+ if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil {
return hashRoot, fmt.Errorf("insert hashed key: %w", err)
}
} else {
- if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil {
+ if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil {
return hashRoot, fmt.Errorf("insert hashed key: %w", err)
}
}
diff --git a/core/forkid/forkid.go b/core/forkid/forkid.go
index 5eee62811bb..433c9221b18 100644
--- a/core/forkid/forkid.go
+++ b/core/forkid/forkid.go
@@ -26,12 +26,11 @@ import (
"reflect"
"strings"
- "github.com/ledgerwatch/erigon-lib/chain"
- libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/log/v3"
"golang.org/x/exp/slices"
- "github.com/ledgerwatch/erigon/common"
+ "github.com/ledgerwatch/erigon-lib/chain"
+ libcommon "github.com/ledgerwatch/erigon-lib/common"
)
var (
@@ -245,12 +244,16 @@ func GatherForks(config *chain.Config, genesisTime uint64) (heightForks []uint64
heightForks = append(heightForks, *config.Aura.PosdaoTransition)
}
+ if config.Bor != nil && config.Bor.AgraBlock != nil {
+ heightForks = append(heightForks, config.Bor.AgraBlock.Uint64())
+ }
+
// Sort the fork block numbers & times to permit chronological XOR
slices.Sort(heightForks)
slices.Sort(timeForks)
// Deduplicate block numbers/times applying to multiple forks
- heightForks = common.RemoveDuplicatesFromSorted(heightForks)
- timeForks = common.RemoveDuplicatesFromSorted(timeForks)
+ heightForks = libcommon.RemoveDuplicatesFromSorted(heightForks)
+ timeForks = libcommon.RemoveDuplicatesFromSorted(timeForks)
// Skip any forks in block 0, that's the genesis ruleset
if len(heightForks) > 0 && heightForks[0] == 0 {
heightForks = heightForks[1:]
diff --git a/core/forkid/forkid_test.go b/core/forkid/forkid_test.go
index 4a8e69b6226..5355436193c 100644
--- a/core/forkid/forkid_test.go
+++ b/core/forkid/forkid_test.go
@@ -24,7 +24,6 @@ import (
"github.com/ledgerwatch/erigon-lib/chain"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/params"
"github.com/ledgerwatch/erigon/rlp"
)
@@ -142,6 +141,18 @@ func TestCreation(t *testing.T) {
{4100419, 1684934220, ID{Hash: checksumToBytes(0xa15a4252), Next: 0}}, // First Shanghai block
},
},
+ // Mumbai test cases
+ {
+ params.MumbaiChainConfig,
+ params.MumbaiGenesisHash,
+ []testcase{
+ {0, 0, ID{Hash: checksumToBytes(0xf6ef3fdf), Next: 2722000}},
+ {2722000, 0, ID{Hash: checksumToBytes(0x8647df30), Next: 13996000}}, // First Istanbul block
+ {13996000, 0, ID{Hash: checksumToBytes(0x06cc1179), Next: 22640000}}, // First Berlin block
+ {22640000, 0, ID{Hash: checksumToBytes(0x9adf950e), Next: 41874000}}, // First London block
+ {41874000, 0, ID{Hash: checksumToBytes(0x0c015a91), Next: 0}}, // First Agra block
+ },
+ },
}
for i, tt := range tests {
for j, ttt := range tt.cases {
@@ -239,9 +250,9 @@ func TestEncoding(t *testing.T) {
id ID
want []byte
}{
- {ID{Hash: checksumToBytes(0), Next: 0}, common.Hex2Bytes("c6840000000080")},
- {ID{Hash: checksumToBytes(0xdeadbeef), Next: 0xBADDCAFE}, common.Hex2Bytes("ca84deadbeef84baddcafe,")},
- {ID{Hash: checksumToBytes(math.MaxUint32), Next: math.MaxUint64}, common.Hex2Bytes("ce84ffffffff88ffffffffffffffff")},
+ {ID{Hash: checksumToBytes(0), Next: 0}, libcommon.Hex2Bytes("c6840000000080")},
+ {ID{Hash: checksumToBytes(0xdeadbeef), Next: 0xBADDCAFE}, libcommon.Hex2Bytes("ca84deadbeef84baddcafe,")},
+ {ID{Hash: checksumToBytes(math.MaxUint32), Next: math.MaxUint64}, libcommon.Hex2Bytes("ce84ffffffff88ffffffffffffffff")},
}
for i, tt := range tests {
have, err := rlp.EncodeToBytes(tt.id)
diff --git a/core/genesis_test.go b/core/genesis_test.go
index 3f9b8dcf154..dd0ada5b6db 100644
--- a/core/genesis_test.go
+++ b/core/genesis_test.go
@@ -6,6 +6,7 @@ import (
"testing"
"github.com/holiman/uint256"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/kv"
@@ -19,7 +20,6 @@ import (
"github.com/ledgerwatch/erigon/core/state"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/log/v3"
)
diff --git a/core/genesis_write.go b/core/genesis_write.go
index ec6ae12794b..34434402a13 100644
--- a/core/genesis_write.go
+++ b/core/genesis_write.go
@@ -32,14 +32,15 @@ import (
"golang.org/x/exp/slices"
"github.com/ledgerwatch/erigon-lib/chain"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/kvcfg"
"github.com/ledgerwatch/erigon-lib/kv/mdbx"
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/consensus/ethash"
"github.com/ledgerwatch/erigon/consensus/merge"
"github.com/ledgerwatch/erigon/core/rawdb"
@@ -49,7 +50,6 @@ import (
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/eth/ethconfig"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/erigon/turbo/trie"
)
diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go
index e33469925f3..5a64f2965f1 100644
--- a/core/rawdb/accessors_chain.go
+++ b/core/rawdb/accessors_chain.go
@@ -22,6 +22,7 @@ import (
"encoding/binary"
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math"
"math/big"
"time"
@@ -36,7 +37,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/ethdb/cbor"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/core/rawdb/blockio/block_writer.go b/core/rawdb/blockio/block_writer.go
index 0b645e0df87..73264cda1fa 100644
--- a/core/rawdb/blockio/block_writer.go
+++ b/core/rawdb/blockio/block_writer.go
@@ -3,13 +3,13 @@ package blockio
import (
"context"
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon-lib/etl"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/turbo/backup"
"github.com/ledgerwatch/log/v3"
diff --git a/core/rawdb/bor_receipts.go b/core/rawdb/bor_receipts.go
index e5eef61f391..d05c25f1a44 100644
--- a/core/rawdb/bor_receipts.go
+++ b/core/rawdb/bor_receipts.go
@@ -4,6 +4,7 @@ import (
"bytes"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -11,7 +12,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/ethdb/cbor"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/core/skip_analysis.go b/core/skip_analysis.go
index 96c9226bdd9..55d38fc15ec 100644
--- a/core/skip_analysis.go
+++ b/core/skip_analysis.go
@@ -20,8 +20,7 @@ import (
"sort"
"github.com/ledgerwatch/erigon-lib/chain"
-
- "github.com/ledgerwatch/erigon/params/networkname"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
)
// SkipAnalysis function tells us whether we can skip performing jumpdest analysis
diff --git a/core/state/cached_reader2.go b/core/state/cached_reader2.go
index 58e63b4620f..915544319c8 100644
--- a/core/state/cached_reader2.go
+++ b/core/state/cached_reader2.go
@@ -3,12 +3,12 @@ package state
import (
"bytes"
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
diff --git a/core/state/change_set_writer.go b/core/state/change_set_writer.go
index b3da878448f..98aeed1fd3e 100644
--- a/core/state/change_set_writer.go
+++ b/core/state/change_set_writer.go
@@ -2,6 +2,7 @@ package state
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -9,8 +10,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
historyv22 "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
@@ -43,7 +42,7 @@ func NewChangeSetWriterPlain(db kv.RwTx, blockNumber uint64) *ChangeSetWriter {
func (w *ChangeSetWriter) GetAccountChanges() (*historyv22.ChangeSet, error) {
cs := historyv22.NewAccountChangeSet()
for address, val := range w.accountChanges {
- if err := cs.Add(common.CopyBytes(address[:]), val); err != nil {
+ if err := cs.Add(libcommon.CopyBytes(address[:]), val); err != nil {
return nil, err
}
}
diff --git a/core/state/database_test.go b/core/state/database_test.go
index 02b4f9e1066..6eabd5350da 100644
--- a/core/state/database_test.go
+++ b/core/state/database_test.go
@@ -1369,7 +1369,7 @@ func TestRecreateAndRewind(t *testing.T) {
case 1:
// Calculate the address of the Phoenix and create handle to phoenix contract
var codeHash libcommon.Hash
- if codeHash, err = common.HashData(common.FromHex(contracts.PhoenixBin)); err != nil {
+ if codeHash, err = libcommon.HashData(common.FromHex(contracts.PhoenixBin)); err != nil {
panic(err)
}
phoenixAddress = crypto.CreateAddress2(reviveAddress, [32]byte{}, codeHash.Bytes())
@@ -1431,7 +1431,7 @@ func TestRecreateAndRewind(t *testing.T) {
case 1:
// Calculate the address of the Phoenix and create handle to phoenix contract
var codeHash libcommon.Hash
- if codeHash, err = common.HashData(common.FromHex(contracts.PhoenixBin)); err != nil {
+ if codeHash, err = libcommon.HashData(common.FromHex(contracts.PhoenixBin)); err != nil {
panic(err)
}
phoenixAddress = crypto.CreateAddress2(reviveAddress, [32]byte{}, codeHash.Bytes())
diff --git a/core/state/db_state_reader.go b/core/state/db_state_reader.go
index 21f91d5e981..11ba22559b8 100644
--- a/core/state/db_state_reader.go
+++ b/core/state/db_state_reader.go
@@ -3,13 +3,12 @@ package state
import (
"bytes"
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/VictoriaMetrics/fastcache"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
@@ -52,7 +51,7 @@ func (dbr *DbStateReader) ReadAccountData(address libcommon.Address) (*accounts.
}
if !ok {
var err error
- if addrHash, err1 := common.HashData(address[:]); err1 == nil {
+ if addrHash, err1 := libcommon.HashData(address[:]); err1 == nil {
enc, err = dbr.db.GetOne(kv.HashedAccounts, addrHash[:])
} else {
return nil, err1
@@ -75,11 +74,11 @@ func (dbr *DbStateReader) ReadAccountData(address libcommon.Address) (*accounts.
}
func (dbr *DbStateReader) ReadAccountStorage(address libcommon.Address, incarnation uint64, key *libcommon.Hash) ([]byte, error) {
- addrHash, err := common.HashData(address[:])
+ addrHash, err := libcommon.HashData(address[:])
if err != nil {
return nil, err
}
- seckey, err1 := common.HashData(key[:])
+ seckey, err1 := libcommon.HashData(key[:])
if err1 != nil {
return nil, err1
}
diff --git a/core/state/db_state_writer.go b/core/state/db_state_writer.go
index fd4319840d3..0902a18a540 100644
--- a/core/state/db_state_writer.go
+++ b/core/state/db_state_writer.go
@@ -4,6 +4,7 @@ import (
"bytes"
"encoding/binary"
"fmt"
+ dbutils2 "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/RoaringBitmap/roaring/roaring64"
"github.com/holiman/uint256"
@@ -12,8 +13,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/bitmapdb"
"github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/ethdb"
@@ -66,7 +65,7 @@ func (dsw *DbStateWriter) UpdateAccountData(address libcommon.Address, original,
if err := dsw.csw.UpdateAccountData(address, original, account); err != nil {
return err
}
- addrHash, err := common.HashData(address[:])
+ addrHash, err := libcommon.HashData(address[:])
if err != nil {
return err
}
@@ -82,7 +81,7 @@ func (dsw *DbStateWriter) DeleteAccount(address libcommon.Address, original *acc
if err := dsw.csw.DeleteAccount(address, original); err != nil {
return err
}
- addrHash, err := common.HashData(address[:])
+ addrHash, err := libcommon.HashData(address[:])
if err != nil {
return err
}
@@ -107,12 +106,12 @@ func (dsw *DbStateWriter) UpdateAccountCode(address libcommon.Address, incarnati
if err := dsw.db.Put(kv.Code, codeHash[:], code); err != nil {
return err
}
- addrHash, err := common.HashData(address.Bytes())
+ addrHash, err := libcommon.HashData(address.Bytes())
if err != nil {
return err
}
//save contract to codeHash mapping
- if err := dsw.db.Put(kv.ContractCode, dbutils.GenerateStoragePrefix(addrHash[:], incarnation), codeHash[:]); err != nil {
+ if err := dsw.db.Put(kv.ContractCode, dbutils2.GenerateStoragePrefix(addrHash[:], incarnation), codeHash[:]); err != nil {
return err
}
return nil
@@ -126,15 +125,15 @@ func (dsw *DbStateWriter) WriteAccountStorage(address libcommon.Address, incarna
if *original == *value {
return nil
}
- seckey, err := common.HashData(key[:])
+ seckey, err := libcommon.HashData(key[:])
if err != nil {
return err
}
- addrHash, err := common.HashData(address[:])
+ addrHash, err := libcommon.HashData(address[:])
if err != nil {
return err
}
- compositeKey := dbutils.GenerateCompositeStorageKey(addrHash, incarnation, seckey)
+ compositeKey := dbutils2.GenerateCompositeStorageKey(addrHash, incarnation, seckey)
v := value.Bytes()
if len(v) == 0 {
@@ -181,7 +180,7 @@ func (dsw *DbStateWriter) WriteHistory() error {
func writeIndex(blocknum uint64, changes *historyv2.ChangeSet, bucket string, changeDb kv.RwTx) error {
buf := bytes.NewBuffer(nil)
for _, change := range changes.Changes {
- k := dbutils.CompositeKeyWithoutIncarnation(change.Key)
+ k := dbutils2.CompositeKeyWithoutIncarnation(change.Key)
index, err := bitmapdb.Get64(changeDb, bucket, k, math.MaxUint32, math.MaxUint32)
if err != nil {
@@ -193,7 +192,7 @@ func writeIndex(blocknum uint64, changes *historyv2.ChangeSet, bucket string, ch
if _, err = chunk.WriteTo(buf); err != nil {
return err
}
- return changeDb.Put(bucket, chunkKey, common.CopyBytes(buf.Bytes()))
+ return changeDb.Put(bucket, chunkKey, libcommon.CopyBytes(buf.Bytes()))
}); err != nil {
return err
}
diff --git a/core/state/dump.go b/core/state/dump.go
index d217b1442a7..fff70b3ddb6 100644
--- a/core/state/dump.go
+++ b/core/state/dump.go
@@ -20,6 +20,7 @@ import (
"bytes"
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
@@ -28,7 +29,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/turbo/trie"
@@ -273,7 +273,7 @@ func (d *Dumper) DumpToCollector(c DumpCollector, excludeCode, excludeStorage bo
}
loc := k[20:]
account.Storage[libcommon.BytesToHash(loc).String()] = common.Bytes2Hex(vs)
- h, _ := common.HashData(loc)
+ h, _ := libcommon.HashData(loc)
t.Update(h.Bytes(), libcommon.Copy(vs))
}
} else {
@@ -284,7 +284,7 @@ func (d *Dumper) DumpToCollector(c DumpCollector, excludeCode, excludeStorage bo
d.blockNumber,
func(_, loc, vs []byte) (bool, error) {
account.Storage[libcommon.BytesToHash(loc).String()] = common.Bytes2Hex(vs)
- h, _ := common.HashData(loc)
+ h, _ := libcommon.HashData(loc)
t.Update(h.Bytes(), libcommon.Copy(vs))
return true, nil
}); err != nil {
diff --git a/core/state/history_test.go b/core/state/history_test.go
index ab243534bba..39b9b8788df 100644
--- a/core/state/history_test.go
+++ b/core/state/history_test.go
@@ -2,6 +2,7 @@ package state
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/rand"
"reflect"
"sort"
@@ -19,8 +20,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core/state/historyv2read"
"github.com/ledgerwatch/erigon/core/types/accounts"
@@ -377,7 +376,7 @@ func TestWalkAsOfStatePlain(t *testing.T) {
for _, addr := range addrs {
if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 2, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block2.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block2.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -393,7 +392,7 @@ func TestWalkAsOfStatePlain(t *testing.T) {
}
for _, addr := range addrs {
if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -424,7 +423,7 @@ func TestWalkAsOfStatePlain(t *testing.T) {
}
for _, addr := range addrs {
if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -555,7 +554,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) {
copy(startKey[:length.Addr], addr1.Bytes())
if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 2, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block2.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block2.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -569,7 +568,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) {
Changes: make([]historyv2.Change, 0),
}
if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -597,7 +596,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) {
block4.Changes = block4.Changes[:0]
for _, addr := range []libcommon.Address{addr1, addr2} {
if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -617,7 +616,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) {
Changes: make([]historyv2.Change, 0),
}
if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -641,7 +640,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) {
block6.Changes = block6.Changes[:0]
for _, addr := range []libcommon.Address{addr1, addr2} {
if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v))
+ err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v))
if err != nil {
t.Fatal(err)
}
@@ -681,7 +680,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) {
addrHashes := make([]libcommon.Hash, numOfAccounts)
for i := uint8(0); i < numOfAccounts; i++ {
addrs[i] = libcommon.Address{i + 1}
- addrHash, _ := common.HashData(addrs[i].Bytes())
+ addrHash, _ := libcommon.HashData(addrs[i].Bytes())
addrHashes[i] = addrHash
}
@@ -730,7 +729,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) {
})
if err := WalkAsOfAccounts(tx, libcommon.Address{}, 2, func(k []byte, v []byte) (b bool, e error) {
- innerErr := block2.Add(common.CopyBytes(k), common.CopyBytes(v))
+ innerErr := block2.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v))
if innerErr != nil {
t.Fatal(innerErr)
}
@@ -762,7 +761,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) {
}
if err := WalkAsOfAccounts(tx, libcommon.Address{}, 4, func(k []byte, v []byte) (b bool, e error) {
- innerErr := block4.Add(common.CopyBytes(k), common.CopyBytes(v))
+ innerErr := block4.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v))
if innerErr != nil {
t.Fatal(innerErr)
}
@@ -794,7 +793,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) {
}
if err := WalkAsOfAccounts(tx, libcommon.Address{}, 6, func(k []byte, v []byte) (b bool, e error) {
- innerErr := block6.Add(common.CopyBytes(k), common.CopyBytes(v))
+ innerErr := block6.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v))
if innerErr != nil {
t.Fatal(innerErr)
}
@@ -829,7 +828,7 @@ func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) {
addrHashes := make([]libcommon.Hash, numOfAccounts)
for i := uint8(0); i < numOfAccounts; i++ {
addrs[i] = libcommon.Address{i + 1}
- addrHash, _ := common.HashData(addrs[i].Bytes())
+ addrHash, _ := libcommon.HashData(addrs[i].Bytes())
addrHashes[i] = addrHash
}
@@ -923,7 +922,7 @@ func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) {
}
if err := WalkAsOfAccounts(tx, libcommon.Address{}, blockNum, func(k []byte, v []byte) (b bool, e error) {
- innerErr := obtained.Add(common.CopyBytes(k), common.CopyBytes(v))
+ innerErr := obtained.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v))
if innerErr != nil {
t.Fatal(innerErr)
}
@@ -964,7 +963,7 @@ func TestWalkAsOfStoragePlain_WithChunks(t *testing.T) {
addrHashes := make([]libcommon.Hash, numOfAccounts)
for i := uint8(0); i < numOfAccounts; i++ {
addrs[i] = libcommon.Address{i + 1}
- addrHash, _ := common.HashData(addrs[i].Bytes())
+ addrHash, _ := libcommon.HashData(addrs[i].Bytes())
addrHashes[i] = addrHash
}
key := libcommon.Hash{123}
@@ -1057,7 +1056,7 @@ func TestWalkAsOfStoragePlain_WithChunks(t *testing.T) {
for _, addr := range addrs {
if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, blockNum, func(kAddr, kLoc []byte, v []byte) (b bool, e error) {
- if innerErr := obtained.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)); innerErr != nil {
+ if innerErr := obtained.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)); innerErr != nil {
t.Fatal(innerErr)
}
return true, nil
diff --git a/core/state/history_walk.go b/core/state/history_walk.go
index f14446f122a..686d3e8905e 100644
--- a/core/state/history_walk.go
+++ b/core/state/history_walk.go
@@ -4,6 +4,7 @@ import (
"bytes"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/RoaringBitmap/roaring/roaring64"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -12,7 +13,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/bitmapdb"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/ethdb"
)
diff --git a/core/state/plain_readonly.go b/core/state/plain_readonly.go
index 433ffeccd25..9f1337f4e95 100644
--- a/core/state/plain_readonly.go
+++ b/core/state/plain_readonly.go
@@ -20,6 +20,7 @@ import (
"bytes"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"sort"
"github.com/google/btree"
@@ -30,8 +31,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/kvcfg"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/state/historyv2read"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
@@ -133,7 +132,7 @@ func (s *PlainState) ForEachStorage(addr libcommon.Address, startLocation libcom
// Skip deleted entries
return true, nil
}
- keyHash, err1 := common.HashData(kLoc)
+ keyHash, err1 := libcommon.HashData(kLoc)
if err1 != nil {
return false, err1
}
@@ -289,8 +288,8 @@ func (s *PlainState) WriteAccountStorage(address libcommon.Address, incarnation
t = btree.New(16)
s.storage[address] = t
}
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
_, err := h.Sha.Write(key[:])
if err != nil {
return err
diff --git a/core/state/plain_state_reader.go b/core/state/plain_state_reader.go
index 0b43033f259..0db63b4dcdb 100644
--- a/core/state/plain_state_reader.go
+++ b/core/state/plain_state_reader.go
@@ -3,11 +3,11 @@ package state
import (
"bytes"
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
diff --git a/core/state/plain_state_writer.go b/core/state/plain_state_writer.go
index 367139027df..2fd01159012 100644
--- a/core/state/plain_state_writer.go
+++ b/core/state/plain_state_writer.go
@@ -2,12 +2,12 @@ package state
import (
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/turbo/shards"
)
diff --git a/core/state/recon_writer_inc.go b/core/state/recon_writer_inc.go
index 05862023dbe..a6faade2c8d 100644
--- a/core/state/recon_writer_inc.go
+++ b/core/state/recon_writer_inc.go
@@ -2,14 +2,13 @@ package state
import (
"bytes"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
libstate "github.com/ledgerwatch/erigon-lib/state"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
@@ -60,7 +59,7 @@ func (w *StateReconWriterInc) UpdateAccountCode(address libcommon.Address, incar
return nil
}
if len(code) > 0 {
- w.rs.Put(kv.CodeR, codeHashBytes, nil, common.CopyBytes(code), w.txNum)
+ w.rs.Put(kv.CodeR, codeHashBytes, nil, libcommon.CopyBytes(code), w.txNum)
w.rs.Put(kv.PlainContractR, dbutils.PlainGenerateStoragePrefix(addr, FirstContractIncarnation), nil, codeHashBytes, w.txNum)
} else {
w.rs.Delete(kv.PlainContractD, dbutils.PlainGenerateStoragePrefix(addr, FirstContractIncarnation), nil, w.txNum)
@@ -85,7 +84,7 @@ func (w *StateReconWriterInc) DeleteAccount(address libcommon.Address, original
for k, _, err = c.Seek(addr); err == nil && bytes.HasPrefix(k, addr); k, _, err = c.Next() {
//fmt.Printf("delete account storage [%x] [%x]=>{} txNum: %d\n", address, k[20+8:], w.txNum)
if len(k) > 20 {
- w.rs.Delete(kv.PlainStateD, addr, common.CopyBytes(k[20+8:]), w.txNum)
+ w.rs.Delete(kv.PlainStateD, addr, libcommon.CopyBytes(k[20+8:]), w.txNum)
}
}
if err != nil {
diff --git a/core/state/rw_v3.go b/core/state/rw_v3.go
index 756501a8afe..ef1c61e2ee4 100644
--- a/core/state/rw_v3.go
+++ b/core/state/rw_v3.go
@@ -6,6 +6,7 @@ import (
"encoding/binary"
"encoding/hex"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"sync"
"time"
"unsafe"
@@ -23,7 +24,6 @@ import (
btree2 "github.com/tidwall/btree"
"github.com/ledgerwatch/erigon/cmd/state/exec22"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/state/temporal"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/turbo/shards"
diff --git a/core/state_transition.go b/core/state_transition.go
index 32aeadba317..fab55bb94dd 100644
--- a/core/state_transition.go
+++ b/core/state_transition.go
@@ -24,7 +24,6 @@ import (
"github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common"
cmath "github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/common/u256"
"github.com/ledgerwatch/erigon/consensus/misc"
@@ -120,7 +119,7 @@ func (result *ExecutionResult) Return() []byte {
if result.Err != nil {
return nil
}
- return common.CopyBytes(result.ReturnData)
+ return libcommon.CopyBytes(result.ReturnData)
}
// Revert returns the concrete revert reason if the execution is aborted by `REVERT`
@@ -129,7 +128,7 @@ func (result *ExecutionResult) Revert() []byte {
if result.Err != vm.ErrExecutionReverted {
return nil
}
- return common.CopyBytes(result.ReturnData)
+ return libcommon.CopyBytes(result.ReturnData)
}
// IntrinsicGas computes the 'intrinsic gas' for a message with the given data.
@@ -180,7 +179,7 @@ func NewStateTransition(evm *vm.EVM, msg Message, gp *GasPool) *StateTransition
// state and would never be accepted within a block.
// `refunds` is false when it is not required to apply gas refunds
// `gasBailout` is true when it is not required to fail transaction if the balance is not enough to pay gas.
-// for trace_call to replicate OE/Pariry behaviour
+// for trace_call to replicate OE/Parity behaviour
func ApplyMessage(evm *vm.EVM, msg Message, gp *GasPool, refunds bool, gasBailout bool) (*ExecutionResult, error) {
return NewStateTransition(evm, msg, gp).TransitionDb(refunds, gasBailout)
}
@@ -443,10 +442,12 @@ func (st *StateTransition) TransitionDb(refunds bool, gasBailout bool) (*Executi
amount := new(uint256.Int).SetUint64(st.gasUsed())
amount.Mul(amount, effectiveTip) // gasUsed * effectiveTip = how much goes to the block producer (miner, validator)
st.state.AddBalance(coinbase, amount, evmtypes.BalanceChangeRewardTransactionFee)
- if !msg.IsFree() && rules.IsLondon && rules.IsEip1559FeeCollector {
- burntContractAddress := *st.evm.ChainConfig().Eip1559FeeCollector
- burnAmount := new(uint256.Int).Mul(new(uint256.Int).SetUint64(st.gasUsed()), st.evm.Context().BaseFee)
- st.state.AddBalance(burntContractAddress, burnAmount, evmtypes.BalanceChangeBurn)
+ if !msg.IsFree() && rules.IsLondon {
+ burntContractAddress := st.evm.ChainConfig().GetBurntContract(st.evm.Context().BlockNumber)
+ if burntContractAddress != nil {
+ burnAmount := new(uint256.Int).Mul(new(uint256.Int).SetUint64(st.gasUsed()), st.evm.Context().BaseFee)
+ st.state.AddBalance(*burntContractAddress, burnAmount, evmtypes.BalanceChangeBurn)
+ }
}
if st.isBor {
// Deprecating transfer log and will be removed in future fork. PLEASE DO NOT USE this transfer log going forward. Parameters won't get updated as expected going forward with EIP1559
diff --git a/core/system_contract_lookup.go b/core/system_contract_lookup.go
index dfcecb38d8c..01067fb26d4 100644
--- a/core/system_contract_lookup.go
+++ b/core/system_contract_lookup.go
@@ -4,14 +4,13 @@ import (
"fmt"
"strconv"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/systemcontracts"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
)
func init() {
@@ -44,7 +43,7 @@ func allocToCodeRecords(alloc types.GenesisAlloc, byChain map[libcommon.Address]
for addr, account := range alloc {
if len(account.Code) > 0 {
list := byChain[addr]
- codeHash, err := common.HashData(account.Code)
+ codeHash, err := libcommon.HashData(account.Code)
if err != nil {
panic(fmt.Errorf("failed to hash system contract code: %s", err.Error()))
}
@@ -65,7 +64,7 @@ func addGnosisSpecialCase() {
oldContractCode := hexutility.FromHex("0x6080604052600436106101b65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101bb57806306fdde03146101e4578063095ea7b31461026e5780630b26cf661461029257806318160ddd146102b557806323b872dd146102dc57806330adf81f14610306578063313ce5671461031b5780633644e51514610346578063395093511461035b5780634000aea01461037f57806340c10f19146103b057806342966c68146103d457806354fd4d50146103ec578063661884631461040157806369ffa08a1461042557806370a082311461044c578063715018a61461046d578063726600ce146104825780637d64bcb4146104a35780637ecebe00146104b8578063859ba28c146104d95780638da5cb5b1461051a5780638fcbaf0c1461054b57806395d89b4114610589578063a457c2d71461059e578063a9059cbb146105c2578063b753a98c146105e6578063bb35783b1461060a578063cd59658314610634578063d73dd62314610649578063dd62ed3e1461066d578063f2d5d56b14610694578063f2fde38b146106b8578063ff9e884d146106d9575b600080fd5b3480156101c757600080fd5b506101d0610700565b604080519115158252519081900360200190f35b3480156101f057600080fd5b506101f9610721565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023357818101518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027a57600080fd5b506101d0600160a060020a03600435166024356107af565b34801561029e57600080fd5b506102b3600160a060020a0360043516610803565b005b3480156102c157600080fd5b506102ca61085d565b60408051918252519081900360200190f35b3480156102e857600080fd5b506101d0600160a060020a0360043581169060243516604435610863565b34801561031257600080fd5b506102ca610a32565b34801561032757600080fd5b50610330610a56565b6040805160ff9092168252519081900360200190f35b34801561035257600080fd5b506102ca610a5f565b34801561036757600080fd5b506101d0600160a060020a0360043516602435610a65565b34801561038b57600080fd5b506101d060048035600160a060020a0316906024803591604435918201910135610a78565b3480156103bc57600080fd5b506101d0600160a060020a0360043516602435610b89565b3480156103e057600080fd5b506102b3600435610c94565b3480156103f857600080fd5b506101f9610ca1565b34801561040d57600080fd5b506101d0600160a060020a0360043516602435610cd8565b34801561043157600080fd5b506102b3600160a060020a0360043581169060243516610db5565b34801561045857600080fd5b506102ca600160a060020a0360043516610df1565b34801561047957600080fd5b506102b3610e0c565b34801561048e57600080fd5b506101d0600160a060020a0360043516610e23565b3480156104af57600080fd5b506101d0610e37565b3480156104c457600080fd5b506102ca600160a060020a0360043516610e3e565b3480156104e557600080fd5b506104ee610e50565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052657600080fd5b5061052f610e5b565b60408051600160a060020a039092168252519081900360200190f35b34801561055757600080fd5b506102b3600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e6a565b34801561059557600080fd5b506101f9611171565b3480156105aa57600080fd5b506101d0600160a060020a03600435166024356111cb565b3480156105ce57600080fd5b506101d0600160a060020a03600435166024356111d7565b3480156105f257600080fd5b506102b3600160a060020a0360043516602435611202565b34801561061657600080fd5b506102b3600160a060020a036004358116906024351660443561120d565b34801561064057600080fd5b5061052f61121e565b34801561065557600080fd5b506101d0600160a060020a036004351660243561122d565b34801561067957600080fd5b506102ca600160a060020a03600435811690602435166112b4565b3480156106a057600080fd5b506102b3600160a060020a03600435166024356112df565b3480156106c457600080fd5b506102b3600160a060020a03600435166112ea565b3480156106e557600080fd5b506102ca600160a060020a036004358116906024351661130a565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b820191906000526020600020905b81548152906001019060200180831161078a57829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a03871680855290835281842086905581518681529151939490939092600080516020611a13833981519152928290030190a350600192915050565b600654600160a060020a0316331461081a57600080fd5b61082381611327565b151561082e57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561087b57600080fd5b600160a060020a038416151561089057600080fd5b600160a060020a0385166000908152600360205260409020546108b9908463ffffffff61132f16565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108ee908463ffffffff61134116565b600160a060020a0380861660008181526003602090815260409182902094909455805187815290519193928916926000805160206119f383398151915292918290030190a3600160a060020a0385163314610a1c5761094d85336112b4565b905060001981146109b757610968818463ffffffff61132f16565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a3610a1c565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a1157506109ea611354565b600160a060020a0386166000908152600a6020908152604080832033845290915290205410155b1515610a1c57600080fd5b610a27858585611358565b506001949350505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b60025460ff1681565b60085481565b6000610a71838361122d565b9392505050565b600084600160a060020a03811615801590610a9c5750600160a060020a0381163014155b1515610aa757600080fd5b610ab186866113ef565b1515610abc57600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b3186611327565b15610b7d57610b7233878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437506113fb945050505050565b1515610b7d57600080fd5b50600195945050505050565b600654600090600160a060020a03163314610ba357600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bcb57600080fd5b600454610bde908363ffffffff61134116565b600455600160a060020a038316600090815260036020526040902054610c0a908363ffffffff61134116565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000916000805160206119f38339815191529181900360200190a350600192915050565b610c9e3382611591565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d2c57336000908152600560209081526040808320600160a060020a0388168452909152812055610d61565b610d3c818463ffffffff61132f16565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611a13833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610dcc57600080fd5b80600160a060020a0381161515610de257600080fd5b610dec8383611680565b505050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b657600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260036000909192565b600654600160a060020a031681565b600080600160a060020a038a161515610e8257600080fd5b600160a060020a0389161515610e9757600080fd5b861580610eab575086610ea8611354565b11155b1515610eb657600080fd5b600854604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb602080830191909152600160a060020a03808f16838501528d166060830152608082018c905260a082018b905289151560c0808401919091528351808403909101815260e090920192839052815191929182918401908083835b60208310610f575780518252601f199092019160209182019101610f38565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b60208310610ff75780518252601f199092019160209182019101610fd8565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8d1684870152606084018c9052608084018b905294519098506001965060a080840196509194601f19820194509281900390910191865af1158015611077573d6000803e3d6000fd5b50505060206040510351600160a060020a03168a600160a060020a03161415156110a057600080fd5b600160a060020a038a16600090815260096020526040902080546001810190915588146110cc57600080fd5b856110d85760006110dc565b6000195b600160a060020a03808c166000908152600560209081526040808320938e16835292905220819055905085611112576000611114565b865b600160a060020a03808c166000818152600a60209081526040808320948f1680845294825291829020949094558051858152905192939192600080516020611a13833981519152929181900390910190a350505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b6000610a718383610cd8565b60006111e383836113ef565b15156111ee57600080fd5b6111f9338484611358565b50600192915050565b610dec338383610863565b611218838383610863565b50505050565b600754600160a060020a031690565b336000908152600560209081526040808320600160a060020a0386168452909152812054611261908363ffffffff61134116565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610dec823383610863565b600654600160a060020a0316331461130157600080fd5b610c9e816116ac565b600a60209081526000928352604080842090915290825290205481565b6000903b1190565b60008282111561133b57fe5b50900390565b8181018281101561134e57fe5b92915050565b4290565b61136182611327565b80156113885750604080516000815260208101909152611386908490849084906113fb565b155b15610dec5761139682610e23565b156113a057600080fd5b60408051600160a060020a0380861682528416602082015280820183905290517f11249f0fc79fc134a15a10d1da8291b79515bf987e036ced05b9ec119614070b9181900360600190a1505050565b6000610a71838361172a565b600083600160a060020a031663a4c0ed367c0100000000000000000000000000000000000000000000000000000000028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561148c578181015183820152602001611474565b50505050905090810190601f1680156114b95780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561154757818101518382015260200161152f565b50505050905090810190601f1680156115745780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156115b657600080fd5b600160a060020a0382166000908152600360205260409020546115df908263ffffffff61132f16565b600160a060020a03831660009081526003602052604090205560045461160b908263ffffffff61132f16565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206119f38339815191529181900360200190a35050565b600160a060020a038216151561169e57611699816117f9565b6116a8565b6116a88282611805565b5050565b600160a060020a03811615156116c157600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3360009081526003602052604081205482111561174657600080fd5b600160a060020a038316151561175b57600080fd5b3360009081526003602052604090205461177b908363ffffffff61132f16565b3360009081526003602052604080822092909255600160a060020a038516815220546117ad908363ffffffff61134116565b600160a060020a0384166000818152600360209081526040918290209390935580518581529051919233926000805160206119f38339815191529281900390910190a350600192915050565b30316116a882826118a3565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b505050506040513d602081101561189457600080fd5b5051905061121884848361190b565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015156116a85780826118d86119c2565b600160a060020a039091168152604051908190036020019082f080158015611904573d6000803e3d6000fd5b5050505050565b60408051600160a060020a03841660248201526044808201849052825180830390910181526064909101909152602081810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251606093600093909290918491828a5af160005193508392508080156101b65750506000835111156119ba578115156119ba57600080fd5b505050505050565b6040516021806119d2833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820da715ff88e0288dbae664bb8af2f148726bdc8c499fecf88153280d022031e780029")
newContractCode := hexutility.FromHex("0x6080604052600436106101b35763ffffffff60e060020a60003504166305d2035b81146101b857806306fdde03146101e1578063095ea7b31461026b5780630b26cf661461028f57806318160ddd146102b257806323b872dd146102d957806330adf81f14610303578063313ce567146103185780633644e5151461034357806339509351146103585780634000aea01461037c57806340c10f19146103ad57806342966c68146103d157806354fd4d50146103e957806366188463146103fe57806369ffa08a1461042257806370a0823114610449578063715018a61461046a578063726600ce1461047f5780637d64bcb4146104a05780637ecebe00146104b5578063859ba28c146104d65780638da5cb5b146105175780638fcbaf0c1461054857806395d89b4114610586578063a457c2d71461059b578063a9059cbb146105bf578063b753a98c146105e3578063bb35783b14610607578063c6a1dedf14610631578063cd59658314610646578063d505accf1461065b578063d73dd62314610694578063dd62ed3e146106b8578063f2d5d56b146106df578063f2fde38b14610703578063ff9e884d14610724575b600080fd5b3480156101c457600080fd5b506101cd61074b565b604080519115158252519081900360200190f35b3480156101ed57600080fd5b506101f661076c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610230578181015183820152602001610218565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b506101cd600160a060020a03600435166024356107fa565b34801561029b57600080fd5b506102b0600160a060020a0360043516610810565b005b3480156102be57600080fd5b506102c761086a565b60408051918252519081900360200190f35b3480156102e557600080fd5b506101cd600160a060020a0360043581169060243516604435610870565b34801561030f57600080fd5b506102c7610a38565b34801561032457600080fd5b5061032d610a5c565b6040805160ff9092168252519081900360200190f35b34801561034f57600080fd5b506102c7610a65565b34801561036457600080fd5b506101cd600160a060020a0360043516602435610a6b565b34801561038857600080fd5b506101cd60048035600160a060020a0316906024803591604435918201910135610aac565b3480156103b957600080fd5b506101cd600160a060020a0360043516602435610bbd565b3480156103dd57600080fd5b506102b0600435610cc8565b3480156103f557600080fd5b506101f6610cd5565b34801561040a57600080fd5b506101cd600160a060020a0360043516602435610d0c565b34801561042e57600080fd5b506102b0600160a060020a0360043581169060243516610de9565b34801561045557600080fd5b506102c7600160a060020a0360043516610e0e565b34801561047657600080fd5b506102b0610e29565b34801561048b57600080fd5b506101cd600160a060020a0360043516610e40565b3480156104ac57600080fd5b506101cd610e54565b3480156104c157600080fd5b506102c7600160a060020a0360043516610e5b565b3480156104e257600080fd5b506104eb610e6d565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052357600080fd5b5061052c610e78565b60408051600160a060020a039092168252519081900360200190f35b34801561055457600080fd5b506102b0600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e87565b34801561059257600080fd5b506101f6610fc5565b3480156105a757600080fd5b506101cd600160a060020a036004351660243561101f565b3480156105cb57600080fd5b506101cd600160a060020a0360043516602435611032565b3480156105ef57600080fd5b506102b0600160a060020a0360043516602435611054565b34801561061357600080fd5b506102b0600160a060020a0360043581169060243516604435611064565b34801561063d57600080fd5b506102c7611075565b34801561065257600080fd5b5061052c611099565b34801561066757600080fd5b506102b0600160a060020a036004358116906024351660443560643560ff6084351660a43560c4356110a8565b3480156106a057600080fd5b506101cd600160a060020a0360043516602435611184565b3480156106c457600080fd5b506102c7600160a060020a036004358116906024351661120b565b3480156106eb57600080fd5b506102b0600160a060020a0360043516602435611236565b34801561070f57600080fd5b506102b0600160a060020a0360043516611241565b34801561073057600080fd5b506102c7600160a060020a0360043581169060243516611261565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b505050505081565b600061080733848461127e565b50600192915050565b600654600160a060020a0316331461082757600080fd5b610830816112c0565b151561083b57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561088857600080fd5b600160a060020a038416151561089d57600080fd5b600160a060020a0385166000908152600360205260409020546108c6908463ffffffff6112c816565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108fb908463ffffffff6112da16565b600160a060020a038086166000818152600360209081526040918290209490945580518781529051919392891692600080516020611d7283398151915292918290030190a3600160a060020a0385163314610a225761095a853361120b565b905060001981146109c457610975818463ffffffff6112c816565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a3610a22565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a175750600160a060020a0385166000908152600a602090815260408083203384529091529020544211155b1515610a2257600080fd5b610a2d8585856112ed565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60025460ff1681565b60085481565b336000818152600560209081526040808320600160a060020a03871684529091528120549091610807918590610aa7908663ffffffff6112da16565b61127e565b600084600160a060020a03811615801590610ad05750600160a060020a0381163014155b1515610adb57600080fd5b610ae58686611324565b1515610af057600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b65866112c0565b15610bb157610ba633878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843750611330945050505050565b1515610bb157600080fd5b50600195945050505050565b600654600090600160a060020a03163314610bd757600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bff57600080fd5b600454610c12908363ffffffff6112da16565b600455600160a060020a038316600090815260036020526040902054610c3e908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a03851691600091600080516020611d728339815191529181900360200190a350600192915050565b610cd233826114ad565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d6057336000908152600560209081526040808320600160a060020a0388168452909152812055610d95565b610d70818463ffffffff6112c816565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611d92833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610e0057600080fd5b610e0a828261159c565b5050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b357600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260056000909192565b600654600160a060020a031681565b600080861580610e975750864211155b1515610ea257600080fd5b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb6020820152600160a060020a03808d16828401528b166060820152608081018a905260a0810189905287151560c0808301919091528251808303909101815260e0909101909152610f17906115da565b9150610f25828686866116e1565b600160a060020a038b8116911614610f3c57600080fd5b600160a060020a038a1660009081526009602052604090208054600181019091558814610f6857600080fd5b85610f74576000610f78565b6000195b905085610f86576000610f88565b865b600160a060020a03808c166000908152600a60209081526040808320938e1683529290522055610fb98a8a836118e3565b50505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b600061102b8383610d0c565b9392505050565b600061103e8383611324565b151561104957600080fd5b6108073384846112ed565b61105f338383610870565b505050565b61106f838383610870565b50505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b600754600160a060020a031690565b600080428610156110b857600080fd5b600160a060020a03808a1660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c99281019290925281830193909352928b166060840152608083018a905260a0830182905260c08084018a90528151808503909101815260e090930190529250611149906115da565b9050611157818686866116e1565b600160a060020a038a811691161461116e57600080fd5b61117989898961127e565b505050505050505050565b336000908152600560209081526040808320600160a060020a03861684529091528120546111b8908363ffffffff6112da16565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b61105f823383610870565b600654600160a060020a0316331461125857600080fd5b610cd281611a3e565b600a60209081526000928352604080842090915290825290205481565b6112898383836118e3565b60001981141561105f57600160a060020a038084166000908152600a60209081526040808320938616835292905290812055505050565b6000903b1190565b6000828211156112d457fe5b50900390565b818101828110156112e757fe5b92915050565b6112f682610e40565b1561105f5760408051600081526020810190915261131990849084908490611330565b151561105f57600080fd5b600061102b8383611abc565b600083600160a060020a031663a4c0ed3660e060020a028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113a8578181015183820152602001611390565b50505050905090810190601f1680156113d55780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561146357818101518382015260200161144b565b50505050905090810190601f1680156114905780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156114d257600080fd5b600160a060020a0382166000908152600360205260409020546114fb908263ffffffff6112c816565b600160a060020a038316600090815260036020526040902055600454611527908263ffffffff6112c816565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611d728339815191529181900360200190a35050565b80600160a060020a03811615156115b257600080fd5b600160a060020a03831615156115d0576115cb82611b8b565b61105f565b61105f8383611b97565b6000600854826040518082805190602001908083835b6020831061160f5780518252601f1990920191602091820191016115f0565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b602083106116af5780518252601f199092019160209182019101611690565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b6000808460ff16601b14806116f957508460ff16601c145b1515611775576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611813576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600080825260208083018085528a905260ff8916838501526060830188905260808301879052925160019360a0808501949193601f19840193928390039091019190865af115801561186d573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a03811615156118da576040805160e560020a62461bcd02815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b600160a060020a0383161515611968576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03821615156119ee576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0380841660008181526005602090815260408083209487168084529482529182902085905581518581529151600080516020611d928339815191529281900390910190a3505050565b600160a060020a0381161515611a5357600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33600090815260036020526040812054821115611ad857600080fd5b600160a060020a0383161515611aed57600080fd5b33600090815260036020526040902054611b0d908363ffffffff6112c816565b3360009081526003602052604080822092909255600160a060020a03851681522054611b3f908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191923392600080516020611d728339815191529281900390910190a350600192915050565b3031610e0a8282611c44565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b158015611bfc57600080fd5b505af1158015611c10573d6000803e3d6000fd5b505050506040513d6020811015611c2657600080fd5b5051905061106f600160a060020a038516848363ffffffff611cac16565b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501515610e0a578082611c79611d41565b600160a060020a039091168152604051908190036020019082f080158015611ca5573d6000803e3d6000fd5b5050505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050503d1561105f5760206000803e600051151561105f57600080fd5b604051602180611d51833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820b96bb0733a3e45fdddafa592f51114d0cf16cad047ad60b9b91ae91eb772c6940029")
- codeHash, err := common.HashData(oldContractCode)
+ codeHash, err := libcommon.HashData(oldContractCode)
if err != nil {
panic("could not get code hash from old gnosis token contract")
}
@@ -74,7 +73,7 @@ func addGnosisSpecialCase() {
CodeHash: codeHash,
})
- codeHash, err = common.HashData(newContractCode)
+ codeHash, err = libcommon.HashData(newContractCode)
if err != nil {
panic("could not get code hash from new gnosis token contract")
}
diff --git a/core/types/access_list_tx.go b/core/types/access_list_tx.go
index 562205d3327..0f6131ea91e 100644
--- a/core/types/access_list_tx.go
+++ b/core/types/access_list_tx.go
@@ -28,9 +28,9 @@ import (
"github.com/ledgerwatch/erigon-lib/chain"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ rlp2 "github.com/ledgerwatch/erigon-lib/rlp"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/u256"
"github.com/ledgerwatch/erigon/rlp"
)
@@ -52,7 +52,7 @@ func (tx AccessListTx) copy() *AccessListTx {
},
Nonce: tx.Nonce,
To: tx.To, // TODO: copy pointed-to address
- Data: common.CopyBytes(tx.Data),
+ Data: libcommon.CopyBytes(tx.Data),
Gas: tx.Gas,
// These are copied below.
Value: new(uint256.Int),
@@ -93,13 +93,8 @@ func (tx *AccessListTx) Unwrap() Transaction {
// EncodingSize returns the RLP encoding size of the whole transaction envelope
func (tx AccessListTx) EncodingSize() int {
payloadSize, _, _, _ := tx.payloadSize()
- envelopeSize := payloadSize
// Add envelope size and type size
- if payloadSize >= 56 {
- envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize)))
- }
- envelopeSize += 2
- return envelopeSize
+ return 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize
}
// payloadSize calculates the RLP encoding size of transaction, without TxType and envelope
@@ -127,26 +122,10 @@ func (tx AccessListTx) payloadSize() (payloadSize int, nonceLen, gasLen, accessL
payloadSize++
payloadSize += rlp.Uint256LenExcludingHead(tx.Value)
// size of Data
- payloadSize++
- switch len(tx.Data) {
- case 0:
- case 1:
- if tx.Data[0] >= 128 {
- payloadSize++
- }
- default:
- if len(tx.Data) >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data))))
- }
- payloadSize += len(tx.Data)
- }
+ payloadSize += rlp2.StringLen(tx.Data)
// size of AccessList
- payloadSize++
accessListLen = accessListSize(tx.AccessList)
- if accessListLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(accessListLen)))
- }
- payloadSize += accessListLen
+ payloadSize += rlp2.ListPrefixLen(accessListLen) + accessListLen
// size of V
payloadSize++
payloadSize += rlp.Uint256LenExcludingHead(&tx.V)
@@ -164,18 +143,10 @@ func accessListSize(al types2.AccessList) int {
for _, tuple := range al {
tupleLen := 21 // For the address
// size of StorageKeys
- tupleLen++
// Each storage key takes 33 bytes
storageLen := 33 * len(tuple.StorageKeys)
- if storageLen >= 56 {
- tupleLen += libcommon.BitLenToByteLen(bits.Len(uint(storageLen))) // BE encoding of the length of the storage keys
- }
- tupleLen += storageLen
- accessListLen++
- if tupleLen >= 56 {
- accessListLen += libcommon.BitLenToByteLen(bits.Len(uint(tupleLen))) // BE encoding of the length of the storage keys
- }
- accessListLen += tupleLen
+ tupleLen += rlp2.ListPrefixLen(storageLen) + storageLen
+ accessListLen += rlp2.ListPrefixLen(tupleLen) + tupleLen
}
return accessListLen
}
@@ -183,13 +154,9 @@ func accessListSize(al types2.AccessList) int {
func encodeAccessList(al types2.AccessList, w io.Writer, b []byte) error {
for _, tuple := range al {
tupleLen := 21
- tupleLen++
// Each storage key takes 33 bytes
storageLen := 33 * len(tuple.StorageKeys)
- if storageLen >= 56 {
- tupleLen += libcommon.BitLenToByteLen(bits.Len(uint(storageLen))) // BE encoding of the length of the storage keys
- }
- tupleLen += storageLen
+ tupleLen += rlp2.ListPrefixLen(storageLen) + storageLen
if err := EncodeStructSizePrefix(tupleLen, w, b); err != nil {
return err
}
@@ -320,12 +287,8 @@ func (tx AccessListTx) encodePayload(w io.Writer, b []byte, payloadSize, nonceLe
// EncodeRLP implements rlp.Encoder
func (tx AccessListTx) EncodeRLP(w io.Writer) error {
payloadSize, nonceLen, gasLen, accessListLen := tx.payloadSize()
- envelopeSize := payloadSize
- if payloadSize >= 56 {
- envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize)))
- }
// size of struct prefix and TxType
- envelopeSize += 2
+ envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize
var b [33]byte
// envelope
if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil {
diff --git a/core/types/accounts/account.go b/core/types/accounts/account.go
index 1953249c652..a2c284042c7 100644
--- a/core/types/accounts/account.go
+++ b/core/types/accounts/account.go
@@ -8,6 +8,7 @@ import (
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ rlp2 "github.com/ledgerwatch/erigon-lib/rlp"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/rlp"
@@ -77,8 +78,6 @@ func (a *Account) EncodingLengthForStorage() uint {
}
func (a *Account) EncodingLengthForHashing() uint {
- var structLength uint
-
balanceBytes := 0
if !a.Balance.LtUint64(128) {
balanceBytes = a.Balance.ByteLen()
@@ -86,17 +85,11 @@ func (a *Account) EncodingLengthForHashing() uint {
nonceBytes := rlp.IntLenExcludingHead(a.Nonce)
- structLength += uint(balanceBytes + nonceBytes + 2)
+ structLength := balanceBytes + nonceBytes + 2
structLength += 66 // Two 32-byte arrays + 2 prefixes
- if structLength < 56 {
- return 1 + structLength
- }
-
- lengthBytes := libcommon.BitLenToByteLen(bits.Len(structLength))
-
- return uint(1+lengthBytes) + structLength
+ return uint(rlp2.ListPrefixLen(structLength) + structLength)
}
func (a *Account) EncodeForStorage(buffer []byte) {
diff --git a/core/types/accounts/account_proof.go b/core/types/accounts/account_proof.go
index 7653445d1d1..9239e6b3fcf 100644
--- a/core/types/accounts/account_proof.go
+++ b/core/types/accounts/account_proof.go
@@ -2,9 +2,8 @@ package accounts
import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// Result structs for GetProof
diff --git a/core/types/blob_tx.go b/core/types/blob_tx.go
index dfe03c44c58..d2bede77c40 100644
--- a/core/types/blob_tx.go
+++ b/core/types/blob_tx.go
@@ -4,13 +4,13 @@ import (
"fmt"
"io"
"math/big"
- "math/bits"
"github.com/holiman/uint256"
"github.com/ledgerwatch/erigon-lib/chain"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/fixedgas"
+ rlp2 "github.com/ledgerwatch/erigon-lib/rlp"
types2 "github.com/ledgerwatch/erigon-lib/types"
"github.com/ledgerwatch/erigon/rlp"
@@ -102,12 +102,8 @@ func (stx BlobTx) payloadSize() (payloadSize, nonceLen, gasLen, accessListLen, b
payloadSize++
payloadSize += rlp.Uint256LenExcludingHead(stx.MaxFeePerBlobGas)
// size of BlobVersionedHashes
- payloadSize++
blobHashesLen = blobVersionedHashesSize(stx.BlobVersionedHashes)
- if blobHashesLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(blobHashesLen)))
- }
- payloadSize += blobHashesLen
+ payloadSize += rlp2.ListPrefixLen(blobHashesLen) + blobHashesLen
return
}
@@ -202,12 +198,8 @@ func (stx BlobTx) encodePayload(w io.Writer, b []byte, payloadSize, nonceLen, ga
func (stx BlobTx) EncodeRLP(w io.Writer) error {
payloadSize, nonceLen, gasLen, accessListLen, blobHashesLen := stx.payloadSize()
- envelopeSize := payloadSize
- if payloadSize >= 56 {
- envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize)))
- }
// size of struct prefix and TxType
- envelopeSize += 2
+ envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize
var b [33]byte
// envelope
if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil {
diff --git a/core/types/block.go b/core/types/block.go
index 8aa2f23d5a2..af025683318 100644
--- a/core/types/block.go
+++ b/core/types/block.go
@@ -22,9 +22,9 @@ import (
"encoding/binary"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"io"
"math/big"
- "math/bits"
"reflect"
"sync/atomic"
@@ -34,7 +34,6 @@ import (
rlp2 "github.com/ledgerwatch/erigon-lib/rlp"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rlp"
)
@@ -128,25 +127,11 @@ func (h *Header) EncodingSize() int {
encodingSize++
encodingSize += rlp.IntLenExcludingHead(h.Time)
// size of Extra
- encodingSize++
- switch len(h.Extra) {
- case 0:
- case 1:
- if h.Extra[0] >= 128 {
- encodingSize++
- }
- default:
- if len(h.Extra) >= 56 {
- encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.Extra))))
- }
- encodingSize += len(h.Extra)
- }
+ encodingSize += rlp2.StringLen(h.Extra)
if len(h.AuRaSeal) != 0 {
- encodingSize += 1 + rlp.IntLenExcludingHead(h.AuRaStep) + 1 + len(h.AuRaSeal)
- if len(h.AuRaSeal) >= 56 {
- encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.AuRaSeal))))
- }
+ encodingSize += 1 + rlp.IntLenExcludingHead(h.AuRaStep)
+ encodingSize += rlp2.ListPrefixLen(len(h.AuRaSeal)) + len(h.AuRaSeal)
} else {
encodingSize += 33 /* MixDigest */ + 9 /* BlockNonce */
}
@@ -175,26 +160,12 @@ func (h *Header) EncodingSize() int {
if h.Verkle {
// Encoding of Verkle Proof
- encodingSize++
- switch len(h.VerkleProof) {
- case 0:
- case 1:
- if h.VerkleProof[0] >= 128 {
- encodingSize++
- }
- default:
- if len(h.VerkleProof) >= 56 {
- encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.VerkleProof))))
- }
- encodingSize += len(h.VerkleProof)
- }
- encodingSize++
-
+ encodingSize += rlp2.StringLen(h.VerkleProof)
var tmpBuffer bytes.Buffer
if err := rlp.Encode(&tmpBuffer, h.VerkleKeyVals); err != nil {
panic(err)
}
- encodingSize += tmpBuffer.Len()
+ encodingSize += rlp2.ListPrefixLen(tmpBuffer.Len()) + tmpBuffer.Len()
}
return encodingSize
@@ -698,45 +669,25 @@ func (rb RawBody) EncodingSize() int {
func (rb RawBody) payloadSize() (payloadSize, txsLen, unclesLen, withdrawalsLen int) {
// size of Transactions
- payloadSize++
for _, tx := range rb.Transactions {
txsLen += len(tx)
}
- if txsLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen)))
- }
- payloadSize += txsLen
+ payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen
// size of Uncles
- payloadSize++
for _, uncle := range rb.Uncles {
- unclesLen++
uncleLen := uncle.EncodingSize()
- if uncleLen >= 56 {
- unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen)))
- }
- unclesLen += uncleLen
- }
- if unclesLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen)))
+ unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen
}
- payloadSize += unclesLen
+ payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen
// size of Withdrawals
if rb.Withdrawals != nil {
- payloadSize++
for _, withdrawal := range rb.Withdrawals {
- withdrawalsLen++
withdrawalLen := withdrawal.EncodingSize()
- if withdrawalLen >= 56 {
- withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen)))
- }
- withdrawalsLen += withdrawalLen
- }
- if withdrawalsLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen)))
+ withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen
}
- payloadSize += withdrawalsLen
+ payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen
}
return payloadSize, txsLen, unclesLen, withdrawalsLen
@@ -853,9 +804,6 @@ func (rb *RawBody) DecodeRLP(s *rlp.Stream) error {
}
func (bfs BodyForStorage) payloadSize() (payloadSize, unclesLen, withdrawalsLen int) {
-
- payloadSize++
-
baseTxIdLen := 1 + rlp.IntLenExcludingHead(bfs.BaseTxId)
txAmountLen := 1 + rlp.IntLenExcludingHead(uint64(bfs.TxAmount))
@@ -864,33 +812,18 @@ func (bfs BodyForStorage) payloadSize() (payloadSize, unclesLen, withdrawalsLen
// size of Uncles
for _, uncle := range bfs.Uncles {
- unclesLen++
uncleLen := uncle.EncodingSize()
- if uncleLen >= 56 {
- unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen)))
- }
- unclesLen += uncleLen
- }
- if unclesLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen)))
+ unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen
}
- payloadSize += unclesLen
+ payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen
// size of Withdrawals
if bfs.Withdrawals != nil {
- payloadSize++
for _, withdrawal := range bfs.Withdrawals {
- withdrawalsLen++
withdrawalLen := withdrawal.EncodingSize()
- if withdrawalLen >= 56 {
- withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen)))
- }
- withdrawalsLen += withdrawalLen
+ withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen
}
- if withdrawalsLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen)))
- }
- payloadSize += withdrawalsLen
+ payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen
}
return payloadSize, unclesLen, withdrawalsLen
@@ -1012,50 +945,26 @@ func (bb Body) EncodingSize() int {
func (bb Body) payloadSize() (payloadSize int, txsLen, unclesLen, withdrawalsLen int) {
// size of Transactions
- payloadSize++
for _, tx := range bb.Transactions {
- txsLen++
txLen := tx.EncodingSize()
- if txLen >= 56 {
- txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen)))
- }
- txsLen += txLen
+ txsLen += rlp2.ListPrefixLen(txLen) + txLen
}
- if txsLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen)))
- }
- payloadSize += txsLen
+ payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen
// size of Uncles
- payloadSize++
for _, uncle := range bb.Uncles {
- unclesLen++
uncleLen := uncle.EncodingSize()
- if uncleLen >= 56 {
- unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen)))
- }
- unclesLen += uncleLen
+ unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen
}
- if unclesLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen)))
- }
- payloadSize += unclesLen
+ payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen
// size of Withdrawals
if bb.Withdrawals != nil {
- payloadSize++
for _, withdrawal := range bb.Withdrawals {
- withdrawalsLen++
withdrawalLen := withdrawal.EncodingSize()
- if withdrawalLen >= 56 {
- withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen)))
- }
- withdrawalsLen += withdrawalLen
+ withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen
}
- if withdrawalsLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen)))
- }
- payloadSize += withdrawalsLen
+ payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen
}
return payloadSize, txsLen, unclesLen, withdrawalsLen
@@ -1359,58 +1268,30 @@ func (bb *Block) DecodeRLP(s *rlp.Stream) error {
func (bb Block) payloadSize() (payloadSize int, txsLen, unclesLen, withdrawalsLen int) {
// size of Header
- payloadSize++
headerLen := bb.header.EncodingSize()
- if headerLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(headerLen)))
- }
- payloadSize += headerLen
+ payloadSize += rlp2.ListPrefixLen(headerLen) + headerLen
// size of Transactions
- payloadSize++
for _, tx := range bb.transactions {
- txsLen++
txLen := tx.EncodingSize()
- if txLen >= 56 {
- txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen)))
- }
- txsLen += txLen
- }
- if txsLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen)))
+ txsLen += rlp2.ListPrefixLen(txLen) + txLen
}
- payloadSize += txsLen
+ payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen
// size of Uncles
- payloadSize++
for _, uncle := range bb.uncles {
- unclesLen++
uncleLen := uncle.EncodingSize()
- if uncleLen >= 56 {
- unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen)))
- }
- unclesLen += uncleLen
- }
- if unclesLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen)))
+ unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen
}
- payloadSize += unclesLen
+ payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen
// size of Withdrawals
if bb.withdrawals != nil {
- payloadSize++
for _, withdrawal := range bb.withdrawals {
- withdrawalsLen++
withdrawalLen := withdrawal.EncodingSize()
- if withdrawalLen >= 56 {
- withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen)))
- }
- withdrawalsLen += withdrawalLen
- }
- if withdrawalsLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen)))
+ withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen
}
- payloadSize += withdrawalsLen
+ payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen
}
return payloadSize, txsLen, unclesLen, withdrawalsLen
@@ -1494,7 +1375,7 @@ func (b *Block) ParentHash() libcommon.Hash { return b.header.ParentHash }
func (b *Block) TxHash() libcommon.Hash { return b.header.TxHash }
func (b *Block) ReceiptHash() libcommon.Hash { return b.header.ReceiptHash }
func (b *Block) UncleHash() libcommon.Hash { return b.header.UncleHash }
-func (b *Block) Extra() []byte { return common.CopyBytes(b.header.Extra) }
+func (b *Block) Extra() []byte { return libcommon.CopyBytes(b.header.Extra) }
func (b *Block) BaseFee() *big.Int {
if b.header.BaseFee == nil {
return nil
diff --git a/core/types/block_test.go b/core/types/block_test.go
index be05c716b26..63f2f907932 100644
--- a/core/types/block_test.go
+++ b/core/types/block_test.go
@@ -64,7 +64,7 @@ func TestBlockEncoding(t *testing.T) {
check("Size", block.Size(), common.StorageSize(len(blockEnc)))
var tx1 Transaction = NewTransaction(0, libcommon.HexToAddress("095e7baea6a6c7c4c2dfeb977efac326af552d87"), uint256.NewInt(10), 50000, uint256.NewInt(10), nil)
- tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100"))
+ tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100"))
check("len(Transactions)", len(block.Transactions()), 1)
check("Transactions[0].Hash", block.Transactions()[0].Hash(), tx1.Hash())
ourBlockEnc, err := rlp.EncodeToBytes(&block)
@@ -102,7 +102,7 @@ func TestEIP1559BlockEncoding(t *testing.T) {
check("BaseFee", block.BaseFee(), new(big.Int).SetUint64(params.InitialBaseFee))
var tx1 Transaction = NewTransaction(0, libcommon.HexToAddress("095e7baea6a6c7c4c2dfeb977efac326af552d87"), new(uint256.Int).SetUint64(10), 50000, new(uint256.Int).SetUint64(10), nil)
- tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100"))
+ tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100"))
addr := libcommon.HexToAddress("0x0000000000000000000000000000000000000001")
accesses := types2.AccessList{types2.AccessTuple{
@@ -125,7 +125,7 @@ func TestEIP1559BlockEncoding(t *testing.T) {
Tip: u256.Num0,
AccessList: accesses,
}
- tx2, err := tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), common.Hex2Bytes("fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a800"))
+ tx2, err := tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), libcommon.Hex2Bytes("fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a800"))
if err != nil {
t.Fatal("invalid signature error: ", err)
}
@@ -177,7 +177,7 @@ func TestEIP2718BlockEncoding(t *testing.T) {
},
GasPrice: ten,
}
- sig := common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")
+ sig := libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")
tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), sig)
chainID, _ := uint256.FromBig(big.NewInt(1))
@@ -195,7 +195,7 @@ func TestEIP2718BlockEncoding(t *testing.T) {
},
AccessList: types2.AccessList{{Address: addr, StorageKeys: []libcommon.Hash{{0}}}},
}
- sig2 := common.Hex2Bytes("3dbacc8d0259f2508625e97fdfc57cd85fdd16e5821bc2c10bdd1a52649e8335476e10695b183a87b0aa292a7f4b78ef0c3fbe62aa2c42c84e1d9c3da159ef1401")
+ sig2 := libcommon.Hex2Bytes("3dbacc8d0259f2508625e97fdfc57cd85fdd16e5821bc2c10bdd1a52649e8335476e10695b183a87b0aa292a7f4b78ef0c3fbe62aa2c42c84e1d9c3da159ef1401")
tx2, _ = tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), sig2)
check("len(Transactions)", len(block.Transactions()), 2)
@@ -319,12 +319,12 @@ func TestCanEncodeAndDecodeRawBody(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- rlpBytes := common.CopyBytes(writer.Bytes())
+ rlpBytes := libcommon.CopyBytes(writer.Bytes())
writer.Reset()
writer.WriteString(hexutility.Encode(rlpBytes))
var rawBody RawBody
- fromHex := common.CopyBytes(common.FromHex(writer.String()))
+ fromHex := libcommon.CopyBytes(common.FromHex(writer.String()))
bodyReader := bytes.NewReader(fromHex)
stream := rlp.NewStream(bodyReader, 0)
diff --git a/core/types/bor_receipt.go b/core/types/bor_receipt.go
index a993de490c4..16b30605a9d 100644
--- a/core/types/bor_receipt.go
+++ b/core/types/bor_receipt.go
@@ -1,13 +1,13 @@
package types
import (
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/big"
"sort"
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/crypto"
)
diff --git a/core/types/dynamic_fee_tx.go b/core/types/dynamic_fee_tx.go
index 0fa8b865569..5ee0cf037d9 100644
--- a/core/types/dynamic_fee_tx.go
+++ b/core/types/dynamic_fee_tx.go
@@ -21,15 +21,14 @@ import (
"fmt"
"io"
"math/big"
- "math/bits"
"github.com/holiman/uint256"
"github.com/ledgerwatch/erigon-lib/chain"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ rlp2 "github.com/ledgerwatch/erigon-lib/rlp"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/u256"
"github.com/ledgerwatch/erigon/rlp"
)
@@ -82,7 +81,7 @@ func (tx DynamicFeeTransaction) copy() *DynamicFeeTransaction {
},
Nonce: tx.Nonce,
To: tx.To, // TODO: copy pointed-to address
- Data: common.CopyBytes(tx.Data),
+ Data: libcommon.CopyBytes(tx.Data),
Gas: tx.Gas,
// These are copied below.
Value: new(uint256.Int),
@@ -117,13 +116,8 @@ func (tx DynamicFeeTransaction) GetAccessList() types2.AccessList {
func (tx DynamicFeeTransaction) EncodingSize() int {
payloadSize, _, _, _ := tx.payloadSize()
- envelopeSize := payloadSize
// Add envelope size and type size
- if payloadSize >= 56 {
- envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize)))
- }
- envelopeSize += 2
- return envelopeSize
+ return 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize
}
func (tx DynamicFeeTransaction) payloadSize() (payloadSize int, nonceLen, gasLen, accessListLen int) {
@@ -153,26 +147,10 @@ func (tx DynamicFeeTransaction) payloadSize() (payloadSize int, nonceLen, gasLen
payloadSize++
payloadSize += rlp.Uint256LenExcludingHead(tx.Value)
// size of Data
- payloadSize++
- switch len(tx.Data) {
- case 0:
- case 1:
- if tx.Data[0] >= 128 {
- payloadSize++
- }
- default:
- if len(tx.Data) >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data))))
- }
- payloadSize += len(tx.Data)
- }
+ payloadSize += rlp2.StringLen(tx.Data)
// size of AccessList
- payloadSize++
accessListLen = accessListSize(tx.AccessList)
- if accessListLen >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(accessListLen)))
- }
- payloadSize += accessListLen
+ payloadSize += rlp2.ListPrefixLen(accessListLen) + accessListLen
// size of V
payloadSize++
payloadSize += rlp.Uint256LenExcludingHead(&tx.V)
@@ -296,12 +274,8 @@ func (tx DynamicFeeTransaction) encodePayload(w io.Writer, b []byte, payloadSize
func (tx DynamicFeeTransaction) EncodeRLP(w io.Writer) error {
payloadSize, nonceLen, gasLen, accessListLen := tx.payloadSize()
- envelopeSize := payloadSize
- if payloadSize >= 56 {
- envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize)))
- }
// size of struct prefix and TxType
- envelopeSize += 2
+ envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize
var b [33]byte
// envelope
if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil {
diff --git a/core/types/gen_erigon_log_json.go b/core/types/gen_erigon_log_json.go
index 2360e2fdba0..02e6505047c 100644
--- a/core/types/gen_erigon_log_json.go
+++ b/core/types/gen_erigon_log_json.go
@@ -5,11 +5,10 @@ package types
import (
"encoding/json"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
var _ = (*logMarshaling)(nil)
diff --git a/core/types/gen_header_json.go b/core/types/gen_header_json.go
index 17b70798b48..9eee9eeb7d2 100644
--- a/core/types/gen_header_json.go
+++ b/core/types/gen_header_json.go
@@ -5,12 +5,11 @@ package types
import (
"encoding/json"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
var _ = (*headerMarshaling)(nil)
diff --git a/core/types/gen_log_json.go b/core/types/gen_log_json.go
index e3db5873dc4..abd1dfd2ebe 100644
--- a/core/types/gen_log_json.go
+++ b/core/types/gen_log_json.go
@@ -5,11 +5,10 @@ package types
import (
"encoding/json"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
var _ = (*logMarshaling)(nil)
diff --git a/core/types/gen_receipt_json.go b/core/types/gen_receipt_json.go
index 8a898648386..34b64b591b7 100644
--- a/core/types/gen_receipt_json.go
+++ b/core/types/gen_receipt_json.go
@@ -5,12 +5,11 @@ package types
import (
"encoding/json"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
var _ = (*receiptMarshaling)(nil)
diff --git a/core/types/gen_withdrawal_json.go b/core/types/gen_withdrawal_json.go
index c56eb61537d..6ed318cc54b 100644
--- a/core/types/gen_withdrawal_json.go
+++ b/core/types/gen_withdrawal_json.go
@@ -4,9 +4,9 @@ package types
import (
"encoding/json"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
)
var _ = (*withdrawalMarshaling)(nil)
diff --git a/core/types/hashing_test.go b/core/types/hashing_test.go
index 5150a5b9a08..1a9ab1c1472 100644
--- a/core/types/hashing_test.go
+++ b/core/types/hashing_test.go
@@ -8,7 +8,6 @@ import (
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/rlp"
"github.com/ledgerwatch/erigon/turbo/trie"
)
@@ -84,7 +83,7 @@ func legacyDeriveSha(list DerivableList) libcommon.Hash {
valbuf.Reset()
_ = rlp.Encode(keybuf, uint(i))
list.EncodeIndex(i, valbuf)
- trie.Update(keybuf.Bytes(), common.CopyBytes(valbuf.Bytes()))
+ trie.Update(keybuf.Bytes(), libcommon.CopyBytes(valbuf.Bytes()))
}
return trie.Hash()
}
diff --git a/core/types/legacy_tx.go b/core/types/legacy_tx.go
index 92c12f2f964..7e183d6b630 100644
--- a/core/types/legacy_tx.go
+++ b/core/types/legacy_tx.go
@@ -21,14 +21,13 @@ import (
"fmt"
"io"
"math/big"
- "math/bits"
"github.com/holiman/uint256"
"github.com/ledgerwatch/erigon-lib/chain"
libcommon "github.com/ledgerwatch/erigon-lib/common"
+ rlp2 "github.com/ledgerwatch/erigon-lib/rlp"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/u256"
"github.com/ledgerwatch/erigon/rlp"
)
@@ -175,7 +174,7 @@ func (tx LegacyTx) copy() *LegacyTx {
},
Nonce: tx.Nonce,
To: tx.To, // TODO: copy pointed-to address
- Data: common.CopyBytes(tx.Data),
+ Data: libcommon.CopyBytes(tx.Data),
Gas: tx.Gas,
// These are initialized below.
Value: new(uint256.Int),
@@ -215,19 +214,7 @@ func (tx LegacyTx) payloadSize() (payloadSize int, nonceLen, gasLen int) {
payloadSize++
payloadSize += rlp.Uint256LenExcludingHead(tx.Value)
// size of Data
- payloadSize++
- switch len(tx.Data) {
- case 0:
- case 1:
- if tx.Data[0] >= 128 {
- payloadSize++
- }
- default:
- if len(tx.Data) >= 56 {
- payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data))))
- }
- payloadSize += len(tx.Data)
- }
+ payloadSize += rlp2.StringLen(tx.Data)
// size of V
payloadSize++
payloadSize += rlp.Uint256LenExcludingHead(&tx.V)
diff --git a/core/types/log.go b/core/types/log.go
index 552300f49a6..f566bf0c372 100644
--- a/core/types/log.go
+++ b/core/types/log.go
@@ -17,12 +17,12 @@
package types
import (
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"io"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rlp"
)
diff --git a/core/types/log_test.go b/core/types/log_test.go
index 408bb33aaef..26efcdba990 100644
--- a/core/types/log_test.go
+++ b/core/types/log_test.go
@@ -19,13 +19,12 @@ package types
import (
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"reflect"
"testing"
"github.com/davecgh/go-spew/spew"
libcommon "github.com/ledgerwatch/erigon-lib/common"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
var unmarshalLogTests = map[string]struct {
diff --git a/core/types/receipt.go b/core/types/receipt.go
index bc3a4d9a7ba..e5689de13f0 100644
--- a/core/types/receipt.go
+++ b/core/types/receipt.go
@@ -20,13 +20,13 @@ import (
"bytes"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"io"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/rlp"
)
diff --git a/core/types/transaction.go b/core/types/transaction.go
index 71f6f729aa9..079b008791d 100644
--- a/core/types/transaction.go
+++ b/core/types/transaction.go
@@ -35,7 +35,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/fixedgas"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/rlp"
@@ -246,7 +245,7 @@ func MarshalTransactionsBinary(txs Transactions) ([][]byte, error) {
if err != nil {
return nil, err
}
- result[i] = common.CopyBytes(buf.Bytes())
+ result[i] = libcommon.CopyBytes(buf.Bytes())
}
return result, nil
}
diff --git a/core/types/transaction_marshalling.go b/core/types/transaction_marshalling.go
index c2d460a6643..b529e517988 100644
--- a/core/types/transaction_marshalling.go
+++ b/core/types/transaction_marshalling.go
@@ -4,6 +4,7 @@ import (
"encoding/json"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/holiman/uint256"
"github.com/valyala/fastjson"
@@ -11,8 +12,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
types2 "github.com/ledgerwatch/erigon-lib/types"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// txJSON is the JSON representation of transactions.
diff --git a/core/types/transaction_signing_test.go b/core/types/transaction_signing_test.go
index 76e306528ea..62b642ea484 100644
--- a/core/types/transaction_signing_test.go
+++ b/core/types/transaction_signing_test.go
@@ -23,7 +23,6 @@ import (
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/crypto"
)
@@ -116,7 +115,7 @@ func TestEIP155SigningVitalik(t *testing.T) {
} {
signer := LatestSignerForChainID(big.NewInt(1))
- tx, err := DecodeTransaction(common.Hex2Bytes(test.txRlp))
+ tx, err := DecodeTransaction(libcommon.Hex2Bytes(test.txRlp))
if err != nil {
t.Errorf("%d: %v", i, err)
continue
diff --git a/core/types/transaction_test.go b/core/types/transaction_test.go
index 5d19a9b49dd..a48f58a9a84 100644
--- a/core/types/transaction_test.go
+++ b/core/types/transaction_test.go
@@ -63,7 +63,7 @@ var (
common.FromHex("5544"),
).WithSignature(
*LatestSignerForChainID(nil),
- common.Hex2Bytes("98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a301"),
+ libcommon.Hex2Bytes("98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a301"),
)
emptyEip2718Tx = &AccessListTx{
@@ -82,7 +82,7 @@ var (
signedEip2718Tx, _ = emptyEip2718Tx.WithSignature(
*LatestSignerForChainID(big.NewInt(1)),
- common.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"),
+ libcommon.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"),
)
dynFeeTx = &DynamicFeeTransaction{
@@ -100,7 +100,7 @@ var (
signedDynFeeTx, _ = dynFeeTx.WithSignature(
*LatestSignerForChainID(big.NewInt(1)),
- common.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"),
+ libcommon.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"),
)
)
@@ -290,7 +290,7 @@ func defaultTestKey() (*ecdsa.PrivateKey, libcommon.Address) {
func TestRecipientEmpty(t *testing.T) {
_, addr := defaultTestKey()
- tx, err := decodeTx(common.Hex2Bytes("f8498080808080011ca09b16de9d5bdee2cf56c28d16275a4da68cd30273e2525f3959f5d62557489921a0372ebd8fb3345f7db7b5a86d42e24d36e983e259b0664ceb8c227ec9af572f3d"))
+ tx, err := decodeTx(libcommon.Hex2Bytes("f8498080808080011ca09b16de9d5bdee2cf56c28d16275a4da68cd30273e2525f3959f5d62557489921a0372ebd8fb3345f7db7b5a86d42e24d36e983e259b0664ceb8c227ec9af572f3d"))
if err != nil {
t.Fatal(err)
}
@@ -307,7 +307,7 @@ func TestRecipientEmpty(t *testing.T) {
func TestRecipientNormal(t *testing.T) {
_, addr := defaultTestKey()
- tx, err := decodeTx(common.Hex2Bytes("f85d80808094000000000000000000000000000000000000000080011ca0527c0d8f5c63f7b9f41324a7c8a563ee1190bcbf0dac8ab446291bdbf32f5c79a0552c4ef0a09a04395074dab9ed34d3fbfb843c2f2546cc30fe89ec143ca94ca6"))
+ tx, err := decodeTx(libcommon.Hex2Bytes("f85d80808094000000000000000000000000000000000000000080011ca0527c0d8f5c63f7b9f41324a7c8a563ee1190bcbf0dac8ab446291bdbf32f5c79a0552c4ef0a09a04395074dab9ed34d3fbfb843c2f2546cc30fe89ec143ca94ca6"))
if err != nil {
t.Fatal(err)
}
diff --git a/core/types/withdrawal.go b/core/types/withdrawal.go
index ba34a02b40a..5dede6a0abc 100644
--- a/core/types/withdrawal.go
+++ b/core/types/withdrawal.go
@@ -19,12 +19,12 @@ package types
import (
"bytes"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"io"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/types/clonable"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rlp"
)
diff --git a/core/vm/analysis_test.go b/core/vm/analysis_test.go
index fba400b69d4..59bb36addec 100644
--- a/core/vm/analysis_test.go
+++ b/core/vm/analysis_test.go
@@ -22,7 +22,6 @@ import (
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/crypto"
)
@@ -63,7 +62,7 @@ func BenchmarkJumpdestAnalysisEmpty_1200k(bench *testing.B) {
}
func BenchmarkJumpdestAnalysis_1200k(bench *testing.B) {
- code := common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056")
+ code := libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056")
bench.ResetTimer()
for i := 0; i < bench.N; i++ {
codeBitmap(code)
@@ -82,7 +81,7 @@ func BenchmarkJumpdestHashing_1200k(bench *testing.B) {
}
func BenchmarkJumpDest(b *testing.B) {
- code := common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056")
+ code := libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056")
pc := new(uint256.Int)
hash := libcommon.Hash{1, 2, 3, 4, 5}
diff --git a/core/vm/contracts.go b/core/vm/contracts.go
index 90d7ed847d6..a9e0d684551 100644
--- a/core/vm/contracts.go
+++ b/core/vm/contracts.go
@@ -20,6 +20,7 @@ import (
"crypto/sha256"
"encoding/binary"
"errors"
+ "github.com/ledgerwatch/erigon-lib/crypto/blake2b"
"math/big"
"github.com/holiman/uint256"
@@ -31,7 +32,6 @@ import (
"github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/crypto"
- "github.com/ledgerwatch/erigon/crypto/blake2b"
"github.com/ledgerwatch/erigon/crypto/bls12381"
"github.com/ledgerwatch/erigon/crypto/bn256"
diff --git a/core/vm/contracts_test.go b/core/vm/contracts_test.go
index bb3a9eeda4f..e41f235ff44 100644
--- a/core/vm/contracts_test.go
+++ b/core/vm/contracts_test.go
@@ -96,7 +96,7 @@ var blake2FMalformedInputTests = []precompiledFailureTest{
func testPrecompiled(t *testing.T, addr string, test precompiledTest) {
p := allPrecompiles[libcommon.HexToAddress(addr)]
- in := common.Hex2Bytes(test.Input)
+ in := libcommon.Hex2Bytes(test.Input)
gas := p.RequiredGas(in)
t.Run(fmt.Sprintf("%s-Gas=%d", test.Name, gas), func(t *testing.T) {
if res, _, err := RunPrecompiledContract(p, in, gas, nil); err != nil {
@@ -108,7 +108,7 @@ func testPrecompiled(t *testing.T, addr string, test precompiledTest) {
t.Errorf("%v: gas wrong, expected %d, got %d", test.Name, expGas, gas)
}
// Verify that the precompile did not touch the input buffer
- exp := common.Hex2Bytes(test.Input)
+ exp := libcommon.Hex2Bytes(test.Input)
if !bytes.Equal(in, exp) {
t.Errorf("Precompiled %v modified input data", addr)
}
@@ -117,7 +117,7 @@ func testPrecompiled(t *testing.T, addr string, test precompiledTest) {
func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) {
p := allPrecompiles[libcommon.HexToAddress(addr)]
- in := common.Hex2Bytes(test.Input)
+ in := libcommon.Hex2Bytes(test.Input)
gas := p.RequiredGas(in) - 1
t.Run(fmt.Sprintf("%s-Gas=%d", test.Name, gas), func(t *testing.T) {
@@ -126,7 +126,7 @@ func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) {
t.Errorf("Expected error [out of gas], got [%v]", err)
}
// Verify that the precompile did not touch the input buffer
- exp := common.Hex2Bytes(test.Input)
+ exp := libcommon.Hex2Bytes(test.Input)
if !bytes.Equal(in, exp) {
t.Errorf("Precompiled %v modified input data", addr)
}
@@ -135,7 +135,7 @@ func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) {
func testPrecompiledFailure(addr string, test precompiledFailureTest, t *testing.T) {
p := allPrecompiles[libcommon.HexToAddress(addr)]
- in := common.Hex2Bytes(test.Input)
+ in := libcommon.Hex2Bytes(test.Input)
gas := p.RequiredGas(in)
t.Run(test.Name, func(t *testing.T) {
_, _, err := RunPrecompiledContract(p, in, gas, nil)
@@ -143,7 +143,7 @@ func testPrecompiledFailure(addr string, test precompiledFailureTest, t *testing
t.Errorf("Expected error [%v], got [%v]", test.ExpectedError, err)
}
// Verify that the precompile did not touch the input buffer
- exp := common.Hex2Bytes(test.Input)
+ exp := libcommon.Hex2Bytes(test.Input)
if !bytes.Equal(in, exp) {
t.Errorf("Precompiled %v modified input data", addr)
}
@@ -155,7 +155,7 @@ func benchmarkPrecompiled(b *testing.B, addr string, test precompiledTest) {
return
}
p := allPrecompiles[libcommon.HexToAddress(addr)]
- in := common.Hex2Bytes(test.Input)
+ in := libcommon.Hex2Bytes(test.Input)
reqGas := p.RequiredGas(in)
var (
diff --git a/core/vm/gas_table_test.go b/core/vm/gas_table_test.go
index 7e3300a37ea..ec04ac97a02 100644
--- a/core/vm/gas_table_test.go
+++ b/core/vm/gas_table_test.go
@@ -19,6 +19,7 @@ package vm
import (
"context"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math"
"strconv"
"testing"
@@ -28,7 +29,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/kv/memdb"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/state"
"github.com/ledgerwatch/erigon/core/state/temporal"
"github.com/ledgerwatch/erigon/core/vm/evmtypes"
diff --git a/core/vm/instructions.go b/core/vm/instructions.go
index 12e0e44a002..a12edf62b6d 100644
--- a/core/vm/instructions.go
+++ b/core/vm/instructions.go
@@ -753,7 +753,7 @@ func opCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byt
}
stack.Push(&temp)
if err == nil || err == ErrExecutionReverted {
- ret = common.CopyBytes(ret)
+ ret = libcommon.CopyBytes(ret)
scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret)
}
@@ -791,7 +791,7 @@ func opCallCode(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([
}
stack.Push(&temp)
if err == nil || err == ErrExecutionReverted {
- ret = common.CopyBytes(ret)
+ ret = libcommon.CopyBytes(ret)
scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret)
}
@@ -825,7 +825,7 @@ func opDelegateCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext
}
stack.Push(&temp)
if err == nil || err == ErrExecutionReverted {
- ret = common.CopyBytes(ret)
+ ret = libcommon.CopyBytes(ret)
scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret)
}
@@ -859,7 +859,7 @@ func opStaticCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext)
}
stack.Push(&temp)
if err == nil || err == ErrExecutionReverted {
- ret = common.CopyBytes(ret)
+ ret = libcommon.CopyBytes(ret)
scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret)
}
diff --git a/core/vm/instructions_test.go b/core/vm/instructions_test.go
index cccd8a60031..9be8a4431a5 100644
--- a/core/vm/instructions_test.go
+++ b/core/vm/instructions_test.go
@@ -117,9 +117,9 @@ func testTwoOperandOp(t *testing.T, tests []TwoOperandTestcase, opFn executionFu
)
for i, test := range tests {
- x := new(uint256.Int).SetBytes(common.Hex2Bytes(test.X))
- y := new(uint256.Int).SetBytes(common.Hex2Bytes(test.Y))
- expected := new(uint256.Int).SetBytes(common.Hex2Bytes(test.Expected))
+ x := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.X))
+ y := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.Y))
+ expected := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.Expected))
stack.Push(x)
stack.Push(y)
opFn(&pc, evmInterpreter, &ScopeContext{nil, stack, nil})
@@ -230,10 +230,10 @@ func TestAddMod(t *testing.T) {
// in 256 bit repr, fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
for i, test := range tests {
- x := new(uint256.Int).SetBytes(common.Hex2Bytes(test.x))
- y := new(uint256.Int).SetBytes(common.Hex2Bytes(test.y))
- z := new(uint256.Int).SetBytes(common.Hex2Bytes(test.z))
- expected := new(uint256.Int).SetBytes(common.Hex2Bytes(test.expected))
+ x := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.x))
+ y := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.y))
+ z := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.z))
+ expected := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.expected))
stack.Push(z)
stack.Push(y)
stack.Push(x)
@@ -305,7 +305,7 @@ func opBenchmark(b *testing.B, op executionFunc, args ...string) {
// convert args
byteArgs := make([][]byte, len(args))
for i, arg := range args {
- byteArgs[i] = common.Hex2Bytes(arg)
+ byteArgs[i] = libcommon.Hex2Bytes(arg)
}
pc := uint64(0)
b.ResetTimer()
@@ -540,7 +540,7 @@ func TestOpMstore(t *testing.T) {
mem.Resize(64)
pc := uint64(0)
v := "abcdef00000000000000abba000000000deaf000000c0de00100000000133700"
- stack.PushN(*new(uint256.Int).SetBytes(common.Hex2Bytes(v)), *new(uint256.Int))
+ stack.PushN(*new(uint256.Int).SetBytes(libcommon.Hex2Bytes(v)), *new(uint256.Int))
opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil})
if got := common.Bytes2Hex(mem.GetCopy(0, 32)); got != v {
t.Fatalf("Mstore fail, got %v, expected %v", got, v)
@@ -585,7 +585,7 @@ func TestOpTstore(t *testing.T) {
contractRef = contractRef{caller}
contract = NewContract(contractRef, to, u256.Num0, 0, false)
scopeContext = ScopeContext{mem, stack, contract}
- value = common.Hex2Bytes("abcdef00000000000000abba000000000deaf000000c0de00100000000133700")
+ value = libcommon.Hex2Bytes("abcdef00000000000000abba000000000deaf000000c0de00100000000133700")
)
env.interpreter = evmInterpreter
diff --git a/core/vm/runtime/runtime_example_test.go b/core/vm/runtime/runtime_example_test.go
index c558d17d4fa..753e3f97f4c 100644
--- a/core/vm/runtime/runtime_example_test.go
+++ b/core/vm/runtime/runtime_example_test.go
@@ -18,8 +18,8 @@ package runtime_test
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/vm/runtime"
)
diff --git a/core/vm/runtime/runtime_test.go b/core/vm/runtime/runtime_test.go
index 40d334748e4..97359ae83e6 100644
--- a/core/vm/runtime/runtime_test.go
+++ b/core/vm/runtime/runtime_test.go
@@ -132,7 +132,7 @@ func TestCall(t *testing.T) {
func BenchmarkCall(b *testing.B) {
var definition = `[{"constant":true,"inputs":[],"name":"seller","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"value","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"buyer","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"confirmReceived","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"type":"function"},{"constant":false,"inputs":[],"name":"confirmPurchase","outputs":[],"type":"function"},{"inputs":[],"type":"constructor"},{"anonymous":false,"inputs":[],"name":"Aborted","type":"event"},{"anonymous":false,"inputs":[],"name":"PurchaseConfirmed","type":"event"},{"anonymous":false,"inputs":[],"name":"ItemReceived","type":"event"},{"anonymous":false,"inputs":[],"name":"Refunded","type":"event"}]`
- var code = common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056")
+ var code = libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056")
abi, err := abi.JSON(strings.NewReader(definition))
if err != nil {
@@ -304,9 +304,9 @@ func TestBlockhash(t *testing.T) {
*/
// The contract above
- data := common.Hex2Bytes("6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063f8a8fd6d14604a575b600080fd5b60506074565b60405180848152602001838152602001828152602001935050505060405180910390f35b600080600080439050600080600083409050600184034092506000600290505b61010481101560c35760008186034090506000816001900414151560b6578093505b5080806001019150506094565b508083839650965096505050505090919256fea165627a7a72305820462d71b510c1725ff35946c20b415b0d50b468ea157c8c77dff9466c9cb85f560029")
+ data := libcommon.Hex2Bytes("6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063f8a8fd6d14604a575b600080fd5b60506074565b60405180848152602001838152602001828152602001935050505060405180910390f35b600080600080439050600080600083409050600184034092506000600290505b61010481101560c35760008186034090506000816001900414151560b6578093505b5080806001019150506094565b508083839650965096505050505090919256fea165627a7a72305820462d71b510c1725ff35946c20b415b0d50b468ea157c8c77dff9466c9cb85f560029")
// The method call to 'test()'
- input := common.Hex2Bytes("f8a8fd6d")
+ input := libcommon.Hex2Bytes("f8a8fd6d")
chain := &dummyChain{}
ret, _, err := Execute(data, input, &Config{
GetHashFn: core.GetHashFn(header, chain.GetHeader),
diff --git a/core/vm/testdata/precompiles/pointEvaluation.json b/core/vm/testdata/precompiles/pointEvaluation.json
index bef9fc57713..ecee94aa7d0 100644
--- a/core/vm/testdata/precompiles/pointEvaluation.json
+++ b/core/vm/testdata/precompiles/pointEvaluation.json
@@ -1,6 +1,6 @@
[
{
- "Input": "013c03613f6fc558fb7e61e75602241ed9a2f04e36d8670aadd286e71b5ca9cc00000000000000000000000000000000000000000000000000000000000000423c8e9f367d9c417c78ca1700993dae1987f44bd5e8ea33a7f62ebc6c35a2e53183fac17c3f237fc51f90e2c660eb202a438bc2025baded5cd193c1a018c5885bc9281ba704d5566082e851235c7be763b2a99adff965e0a121ee972ebc472d02944a74f5c6243e14052e105124b70bf65faf85ad3a494325e269fad097842cba",
+ "Input": "014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9",
"Expected": "000000000000000000000000000000000000000000000000000000000000100073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
"Name": "pointEvaluation1",
"Gas": 50000,
diff --git a/crypto/crypto.go b/crypto/crypto.go
index 17e592ba6a8..6d385075d92 100644
--- a/crypto/crypto.go
+++ b/crypto/crypto.go
@@ -24,6 +24,7 @@ import (
"encoding/hex"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"hash"
"io"
"math/big"
@@ -35,7 +36,6 @@ import (
"github.com/ledgerwatch/erigon/crypto/cryptopool"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/common/u256"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go
index 8f33c95f81d..b9a979bf8c2 100644
--- a/crypto/crypto_test.go
+++ b/crypto/crypto_test.go
@@ -20,6 +20,7 @@ import (
"bytes"
"crypto/ecdsa"
"encoding/hex"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"os"
"reflect"
"testing"
@@ -30,7 +31,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/u256"
)
diff --git a/crypto/signature_test.go b/crypto/signature_test.go
index 2aef1113c14..1a033a96766 100644
--- a/crypto/signature_test.go
+++ b/crypto/signature_test.go
@@ -19,11 +19,11 @@ package crypto
import (
"bytes"
"crypto/ecdsa"
+ "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"reflect"
"testing"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
)
diff --git a/diagnostics/peers.go b/diagnostics/peers.go
index 2b25fda2923..260c60b3456 100644
--- a/diagnostics/peers.go
+++ b/diagnostics/peers.go
@@ -1,15 +1,41 @@
package diagnostics
import (
- "context"
"encoding/json"
"net/http"
- "github.com/ledgerwatch/erigon/p2p"
+ diagnint "github.com/ledgerwatch/erigon-lib/diagnostics"
"github.com/ledgerwatch/erigon/turbo/node"
"github.com/urfave/cli/v2"
)
+type PeerNetworkInfo struct {
+ LocalAddress string `json:"localAddress"` // Local endpoint of the TCP data connection
+ RemoteAddress string `json:"remoteAddress"` // Remote endpoint of the TCP data connection
+ Inbound bool `json:"inbound"`
+ Trusted bool `json:"trusted"`
+ Static bool `json:"static"`
+ BytesIn uint64 `json:"bytesIn"`
+ BytesOut uint64 `json:"bytesOut"`
+ CapBytesIn map[string]uint64 `json:"capBytesIn"`
+ CapBytesOut map[string]uint64 `json:"capBytesOut"`
+ TypeBytesIn map[string]uint64 `json:"typeBytesIn"`
+ TypeBytesOut map[string]uint64 `json:"typeBytesOut"`
+}
+
+type PeerResponse struct {
+ ENR string `json:"enr,omitempty"` // Ethereum Node Record
+ Enode string `json:"enode"` // Node URL
+ ID string `json:"id"` // Unique node identifier
+ Name string `json:"name"` // Name of the node, including client type, version, OS, custom data
+ ErrorCount int `json:"errorCount"` // Number of errors
+ LastSeenError string `json:"lastSeenError"` // Last seen error
+ Type string `json:"type"` // Type of connection
+ Caps []string `json:"caps"` // Protocols advertised by this peer
+ Network PeerNetworkInfo `json:"network"`
+ Protocols map[string]interface{} `json:"protocols"` // Sub-protocol specific metadata fields
+}
+
func SetupPeersAccess(ctx *cli.Context, metricsMux *http.ServeMux, node *node.ErigonNode) {
metricsMux.HandleFunc("/peers", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
@@ -19,34 +45,88 @@ func SetupPeersAccess(ctx *cli.Context, metricsMux *http.ServeMux, node *node.Er
}
func writePeers(w http.ResponseWriter, ctx *cli.Context, node *node.ErigonNode) {
- reply, err := node.Backend().Peers(context.Background())
+ sentinelPeers, err := sentinelPeers(node)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ return
+ }
+ sentryPeers, err := sentryPeers(node)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
- peers := make([]*p2p.PeerInfo, 0, len(reply.Peers))
-
- for _, rpcPeer := range reply.Peers {
- peer := p2p.PeerInfo{
- ENR: rpcPeer.Enr,
- Enode: rpcPeer.Enode,
- ID: rpcPeer.Id,
- Name: rpcPeer.Name,
- Caps: rpcPeer.Caps,
- Network: struct {
- LocalAddress string `json:"localAddress"`
- RemoteAddress string `json:"remoteAddress"`
- Inbound bool `json:"inbound"`
- Trusted bool `json:"trusted"`
- Static bool `json:"static"`
- }{
- LocalAddress: rpcPeer.ConnLocalAddr,
- RemoteAddress: rpcPeer.ConnRemoteAddr,
- Inbound: rpcPeer.ConnIsInbound,
- Trusted: rpcPeer.ConnIsTrusted,
- Static: rpcPeer.ConnIsStatic,
+ allPeers := append(sentryPeers, sentinelPeers...)
+
+ json.NewEncoder(w).Encode(allPeers)
+}
+
+func sentinelPeers(node *node.ErigonNode) ([]*PeerResponse, error) {
+ if diag, ok := node.Backend().Sentinel().(diagnint.PeerStatisticsGetter); ok {
+
+ statisticsArray := diag.GetPeersStatistics()
+ peers := make([]*PeerResponse, 0, len(statisticsArray))
+
+ for key, value := range statisticsArray {
+ peer := PeerResponse{
+ ENR: "", //TODO: find a way how to get missing data
+ Enode: "",
+ ID: key,
+ Name: "",
+ Type: "Sentinel",
+ Caps: []string{},
+ Network: PeerNetworkInfo{
+ LocalAddress: "",
+ RemoteAddress: "",
+ Inbound: false,
+ Trusted: false,
+ Static: false,
+ BytesIn: value.BytesIn,
+ BytesOut: value.BytesOut,
+ CapBytesIn: value.CapBytesIn,
+ CapBytesOut: value.CapBytesOut,
+ TypeBytesIn: value.TypeBytesIn,
+ TypeBytesOut: value.TypeBytesOut,
+ },
+ Protocols: nil,
+ }
+
+ peers = append(peers, &peer)
+ }
+
+ return peers, nil
+ } else {
+ return []*PeerResponse{}, nil
+ }
+}
+
+func sentryPeers(node *node.ErigonNode) ([]*PeerResponse, error) {
+
+ statisticsArray := node.Backend().DiagnosticsPeersData()
+
+ peers := make([]*PeerResponse, 0, len(statisticsArray))
+
+ for key, value := range statisticsArray {
+ peer := PeerResponse{
+ ENR: "", //TODO: find a way how to get missing data
+ Enode: "",
+ ID: key,
+ Name: "",
+ Type: "Sentry",
+ Caps: []string{},
+ Network: PeerNetworkInfo{
+ LocalAddress: "",
+ RemoteAddress: "",
+ Inbound: false,
+ Trusted: false,
+ Static: false,
+ BytesIn: value.BytesIn,
+ BytesOut: value.BytesOut,
+ CapBytesIn: value.CapBytesIn,
+ CapBytesOut: value.CapBytesOut,
+ TypeBytesIn: value.TypeBytesIn,
+ TypeBytesOut: value.TypeBytesOut,
},
Protocols: nil,
}
@@ -54,5 +134,17 @@ func writePeers(w http.ResponseWriter, ctx *cli.Context, node *node.ErigonNode)
peers = append(peers, &peer)
}
- json.NewEncoder(w).Encode(peers)
+ return filterPeersWithoutBytesIn(peers), nil
+}
+
+func filterPeersWithoutBytesIn(peers []*PeerResponse) []*PeerResponse {
+ filteredPeers := make([]*PeerResponse, 0, len(peers))
+
+ for _, peer := range peers {
+ if peer.Network.BytesIn > 0 {
+ filteredPeers = append(filteredPeers, peer)
+ }
+ }
+
+ return filteredPeers
}
diff --git a/docs/examples/single-process.md b/docs/examples/single-process.md
index 6465128fba7..aaed061b0be 100644
--- a/docs/examples/single-process.md
+++ b/docs/examples/single-process.md
@@ -27,7 +27,7 @@ This runs Erigon with RPCDaemon, TxPool etc. all in one single process. This is
## Flags of Interest
-- `--chain` dictactes the chain (goerli/mainnet etc.) - https://chainlist.org/ is a helpful resource
+- `--chain` dictates the chain (goerli/mainnet etc.) - https://chainlist.org/ is a helpful resource
- `--log.dir.path` dictates where logs will be output - useful for sending reports to the Erigon team when issues occur
- `--http.api` defines the set of APIs which are enabled, the above example is a pretty comprehensive list - what these do is beyond the scope of this example
- `--authrpc.port` is the port which the consensus layer (PoS) uses to talk to Erigon
diff --git a/docs/programmers_guide/guide.md b/docs/programmers_guide/guide.md
index 43ddef2e6b4..19606453f65 100644
--- a/docs/programmers_guide/guide.md
+++ b/docs/programmers_guide/guide.md
@@ -450,7 +450,7 @@ also pushes the hash of the byte code onto the hash stack.
the node stack.
`ACCOUNTLEAF` opcode is similar to `LEAF`. It consumes the next item from the key tape. The rest of the semantics
-depends on the value of the `field-set`. Field set can be respresented by a bitmask. In that case, bit 0 would
+depends on the value of the `field-set`. Field set can be represented by a bitmask. In that case, bit 0 would
correspond to field 0, bit 1 (number 2) - to field 1, bit 2 (number 4) - to field 2. Currently, field 0 means account
nonce, field 1 means account balance, field 2 means contract storage, field 3 means contract code.
diff --git a/erigon-lib/.github/workflows/ci.yml b/erigon-lib/.github/workflows/ci.yml
index b76ed8d3b03..79ddb716921 100644
--- a/erigon-lib/.github/workflows/ci.yml
+++ b/erigon-lib/.github/workflows/ci.yml
@@ -32,7 +32,7 @@ jobs:
fetch-depth: 0 # fetch git tags for "git describe"
- uses: actions/setup-go@v4
with:
- go-version: '1.19'
+ go-version: '1.20'
- name: Install deps
if: matrix.os == 'ubuntu-20.04'
diff --git a/erigon-lib/chain/chain_config.go b/erigon-lib/chain/chain_config.go
index 2fccd28cf00..78d8da8e6cd 100644
--- a/erigon-lib/chain/chain_config.go
+++ b/erigon-lib/chain/chain_config.go
@@ -74,8 +74,8 @@ type Config struct {
TargetBlobGasPerBlock *uint64 `json:"targetBlobGasPerBlock,omitempty"`
BlobGasPriceUpdateFraction *uint64 `json:"blobGasPriceUpdateFraction,omitempty"`
- Eip1559FeeCollector *common.Address `json:"eip1559FeeCollector,omitempty"` // (Optional) Address where burnt EIP-1559 fees go to
- Eip1559FeeCollectorTransition *big.Int `json:"eip1559FeeCollectorTransition,omitempty"` // (Optional) Block from which burnt EIP-1559 fees go to the Eip1559FeeCollector
+ // (Optional) governance contract where EIP-1559 fees will be sent to that otherwise would be burnt since the London fork
+ BurntContract map[string]common.Address `json:"burntContract,omitempty"`
// Various consensus engines
Ethash *EthashConfig `json:"ethash,omitempty"`
@@ -198,6 +198,17 @@ func (c *Config) IsShanghai(time uint64) bool {
return isForked(c.ShanghaiTime, time)
}
+// IsAgra returns whether num is either equal to the Agra fork block or greater.
+// The Agra hard fork is based on the Shanghai hard fork, but it doesn't include withdrawals.
+// Also Agra is activated based on the block number rather than the timestamp.
+// Refer to https://forum.polygon.technology/t/pip-28-agra-hardfork
+func (c *Config) IsAgra(num uint64) bool {
+ if c == nil || c.Bor == nil {
+ return false
+ }
+ return isForked(c.Bor.AgraBlock, num)
+}
+
// IsCancun returns whether time is either equal to the Cancun fork time or greater.
func (c *Config) IsCancun(time uint64) bool {
return isForked(c.CancunTime, time)
@@ -208,8 +219,12 @@ func (c *Config) IsPrague(time uint64) bool {
return isForked(c.PragueTime, time)
}
-func (c *Config) IsEip1559FeeCollector(num uint64) bool {
- return c.Eip1559FeeCollector != nil && isForked(c.Eip1559FeeCollectorTransition, num)
+func (c *Config) GetBurntContract(num uint64) *common.Address {
+ if len(c.BurntContract) == 0 {
+ return nil
+ }
+ addr := borKeyValueConfigHelper(c.BurntContract, num)
+ return &addr
}
func (c *Config) GetMinBlobGasPrice() uint64 {
@@ -449,10 +464,10 @@ type BorConfig struct {
OverrideStateSyncRecords map[string]int `json:"overrideStateSyncRecords"` // override state records count
BlockAlloc map[string]interface{} `json:"blockAlloc"`
- JaipurBlock *big.Int `json:"jaipurBlock"` // Jaipur switch block (nil = no fork, 0 = already on jaipur)
- DelhiBlock *big.Int `json:"delhiBlock"` // Delhi switch block (nil = no fork, 0 = already on delhi)
- IndoreBlock *big.Int `json:"indoreBlock"` // Indore switch block (nil = no fork, 0 = already on indore)
-
+ JaipurBlock *big.Int `json:"jaipurBlock"` // Jaipur switch block (nil = no fork, 0 = already on jaipur)
+ DelhiBlock *big.Int `json:"delhiBlock"` // Delhi switch block (nil = no fork, 0 = already on delhi)
+ IndoreBlock *big.Int `json:"indoreBlock"` // Indore switch block (nil = no fork, 0 = already on indore)
+ AgraBlock *big.Int `json:"agraBlock"` // Agra switch block (nil = no fork, 0 = already in agra)
StateSyncConfirmationDelay map[string]uint64 `json:"stateSyncConfirmationDelay"` // StateSync Confirmation Delay, in seconds, to calculate `to`
sprints sprints
@@ -527,11 +542,11 @@ func (c *BorConfig) CalculateSprintCount(from, to uint64) int {
}
func (c *BorConfig) CalculateBackupMultiplier(number uint64) uint64 {
- return c.calcConfig(c.BackupMultiplier, number)
+ return borKeyValueConfigHelper(c.BackupMultiplier, number)
}
func (c *BorConfig) CalculatePeriod(number uint64) uint64 {
- return c.calcConfig(c.Period, number)
+ return borKeyValueConfigHelper(c.Period, number)
}
func (c *BorConfig) IsJaipur(number uint64) bool {
@@ -550,40 +565,25 @@ func (c *BorConfig) CalculateStateSyncDelay(number uint64) uint64 {
return borKeyValueConfigHelper(c.StateSyncConfirmationDelay, number)
}
-func (c *BorConfig) calcConfig(field map[string]uint64, number uint64) uint64 {
- keys := sortMapKeys(field)
- for i := 0; i < len(keys)-1; i++ {
- valUint, _ := strconv.ParseUint(keys[i], 10, 64)
- valUintNext, _ := strconv.ParseUint(keys[i+1], 10, 64)
- if number > valUint && number < valUintNext {
- return field[keys[i]]
+func borKeyValueConfigHelper[T uint64 | common.Address](field map[string]T, number uint64) T {
+ fieldUint := make(map[uint64]T)
+ for k, v := range field {
+ keyUint, err := strconv.ParseUint(k, 10, 64)
+ if err != nil {
+ panic(err)
}
+ fieldUint[keyUint] = v
}
- return field[keys[len(keys)-1]]
-}
-func borKeyValueConfigHelper(field map[string]uint64, number uint64) uint64 {
- keys := sortMapKeys(field)
- for i := 0; i < len(keys)-1; i++ {
- valUint, _ := strconv.ParseUint(keys[i], 10, 64)
- valUintNext, _ := strconv.ParseUint(keys[i+1], 10, 64)
+ keys := common.SortedKeys(fieldUint)
- if number >= valUint && number < valUintNext {
- return field[keys[i]]
+ for i := 0; i < len(keys)-1; i++ {
+ if number >= keys[i] && number < keys[i+1] {
+ return fieldUint[keys[i]]
}
}
- return field[keys[len(keys)-1]]
-}
-
-func sortMapKeys(m map[string]uint64) []string {
- keys := make([]string, 0, len(m))
- for k := range m {
- keys = append(keys, k)
- }
- sort.Strings(keys)
-
- return keys
+ return fieldUint[keys[len(keys)-1]]
}
type sprint struct {
@@ -629,7 +629,7 @@ type Rules struct {
IsHomestead, IsTangerineWhistle, IsSpuriousDragon bool
IsByzantium, IsConstantinople, IsPetersburg, IsIstanbul bool
IsBerlin, IsLondon, IsShanghai, IsCancun, IsPrague bool
- IsEip1559FeeCollector, IsAura bool
+ IsAura bool
}
// Rules ensures c's ChainID is not nil and returns a new Rules instance
@@ -640,21 +640,20 @@ func (c *Config) Rules(num uint64, time uint64) *Rules {
}
return &Rules{
- ChainID: new(big.Int).Set(chainID),
- IsHomestead: c.IsHomestead(num),
- IsTangerineWhistle: c.IsTangerineWhistle(num),
- IsSpuriousDragon: c.IsSpuriousDragon(num),
- IsByzantium: c.IsByzantium(num),
- IsConstantinople: c.IsConstantinople(num),
- IsPetersburg: c.IsPetersburg(num),
- IsIstanbul: c.IsIstanbul(num),
- IsBerlin: c.IsBerlin(num),
- IsLondon: c.IsLondon(num),
- IsShanghai: c.IsShanghai(time),
- IsCancun: c.IsCancun(time),
- IsPrague: c.IsPrague(time),
- IsEip1559FeeCollector: c.IsEip1559FeeCollector(num),
- IsAura: c.Aura != nil,
+ ChainID: new(big.Int).Set(chainID),
+ IsHomestead: c.IsHomestead(num),
+ IsTangerineWhistle: c.IsTangerineWhistle(num),
+ IsSpuriousDragon: c.IsSpuriousDragon(num),
+ IsByzantium: c.IsByzantium(num),
+ IsConstantinople: c.IsConstantinople(num),
+ IsPetersburg: c.IsPetersburg(num),
+ IsIstanbul: c.IsIstanbul(num),
+ IsBerlin: c.IsBerlin(num),
+ IsLondon: c.IsLondon(num),
+ IsShanghai: c.IsShanghai(time) || c.IsAgra(num),
+ IsCancun: c.IsCancun(time),
+ IsPrague: c.IsPrague(time),
+ IsAura: c.Aura != nil,
}
}
diff --git a/erigon-lib/chain/chain_config_test.go b/erigon-lib/chain/chain_config_test.go
new file mode 100644
index 00000000000..990202dd1c7
--- /dev/null
+++ b/erigon-lib/chain/chain_config_test.go
@@ -0,0 +1,68 @@
+/*
+ Copyright 2023 The Erigon contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package chain
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+
+ "github.com/ledgerwatch/erigon-lib/common"
+)
+
+func TestBorKeyValueConfigHelper(t *testing.T) {
+ backupMultiplier := map[string]uint64{
+ "0": 2,
+ "25275000": 5,
+ "29638656": 2,
+ }
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 0), uint64(2))
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 1), uint64(2))
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000-1), uint64(2))
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000), uint64(5))
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000+1), uint64(5))
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656-1), uint64(5))
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656), uint64(2))
+ assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656+1), uint64(2))
+
+ config := map[string]uint64{
+ "0": 1,
+ "90000000": 2,
+ "100000000": 3,
+ }
+ assert.Equal(t, borKeyValueConfigHelper(config, 0), uint64(1))
+ assert.Equal(t, borKeyValueConfigHelper(config, 1), uint64(1))
+ assert.Equal(t, borKeyValueConfigHelper(config, 90000000-1), uint64(1))
+ assert.Equal(t, borKeyValueConfigHelper(config, 90000000), uint64(2))
+ assert.Equal(t, borKeyValueConfigHelper(config, 90000000+1), uint64(2))
+ assert.Equal(t, borKeyValueConfigHelper(config, 100000000-1), uint64(2))
+ assert.Equal(t, borKeyValueConfigHelper(config, 100000000), uint64(3))
+ assert.Equal(t, borKeyValueConfigHelper(config, 100000000+1), uint64(3))
+
+ address1 := common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38")
+ address2 := common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA")
+
+ burntContract := map[string]common.Address{
+ "22640000": address1,
+ "41874000": address2,
+ }
+ assert.Equal(t, borKeyValueConfigHelper(burntContract, 22640000), address1)
+ assert.Equal(t, borKeyValueConfigHelper(burntContract, 22640000+1), address1)
+ assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000-1), address1)
+ assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000), address2)
+ assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000+1), address2)
+}
diff --git a/params/networkname/network_name.go b/erigon-lib/chain/networkname/network_name.go
similarity index 100%
rename from params/networkname/network_name.go
rename to erigon-lib/chain/networkname/network_name.go
diff --git a/turbo/snapshotsync/snapcfg/util.go b/erigon-lib/chain/snapcfg/util.go
similarity index 80%
rename from turbo/snapshotsync/snapcfg/util.go
rename to erigon-lib/chain/snapcfg/util.go
index 3ae9044cb96..548c9b94a87 100644
--- a/turbo/snapshotsync/snapcfg/util.go
+++ b/erigon-lib/chain/snapcfg/util.go
@@ -6,8 +6,9 @@ import (
"strconv"
"strings"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
snapshothashes "github.com/ledgerwatch/erigon-snapshot"
- "github.com/ledgerwatch/erigon/params/networkname"
+ "github.com/ledgerwatch/erigon-snapshot/webseed"
"github.com/pelletier/go-toml/v2"
"golang.org/x/exp/slices"
)
@@ -71,9 +72,6 @@ func maxBlockNum(preverified Preverified) uint64 {
}
onlyName := fileName[:len(fileName)-len(ext)]
parts := strings.Split(onlyName, "-")
- if parts[0] != "v1" {
- panic("not implemented")
- }
if parts[3] != "headers" {
continue
}
@@ -134,3 +132,25 @@ func KnownCfg(networkName string, whiteList, whiteListHistory []string) *Cfg {
return newCfg(result)
}
+
+var KnownWebseeds = map[string][]string{
+ networkname.MainnetChainName: webseedsParse(webseed.Mainnet),
+ networkname.SepoliaChainName: webseedsParse(webseed.Sepolia),
+ networkname.GoerliChainName: webseedsParse(webseed.Goerli),
+ networkname.MumbaiChainName: webseedsParse(webseed.Mumbai),
+ networkname.BorMainnetChainName: webseedsParse(webseed.BorMainnet),
+ networkname.GnosisChainName: webseedsParse(webseed.Gnosis),
+ networkname.ChiadoChainName: webseedsParse(webseed.Chiado),
+}
+
+func webseedsParse(in []byte) (res []string) {
+ a := map[string]string{}
+ if err := toml.Unmarshal(in, &a); err != nil {
+ panic(err)
+ }
+ for _, l := range a {
+ res = append(res, l)
+ }
+ slices.Sort(res)
+ return res
+}
diff --git a/erigon-lib/common/copybytes.go b/erigon-lib/common/copybytes.go
new file mode 100644
index 00000000000..02457e0a954
--- /dev/null
+++ b/erigon-lib/common/copybytes.go
@@ -0,0 +1,12 @@
+package common
+
+// CopyBytes returns an exact copy of the provided bytes.
+func CopyBytes(b []byte) (copiedBytes []byte) {
+ if b == nil {
+ return nil
+ }
+ copiedBytes = make([]byte, len(b))
+ copy(copiedBytes, b)
+
+ return
+}
diff --git a/common/eth2shuffle/shuffle.go b/erigon-lib/common/eth2shuffle/shuffle.go
similarity index 100%
rename from common/eth2shuffle/shuffle.go
rename to erigon-lib/common/eth2shuffle/shuffle.go
diff --git a/common/eth2shuffle/shuffle_bench_test.go b/erigon-lib/common/eth2shuffle/shuffle_bench_test.go
similarity index 97%
rename from common/eth2shuffle/shuffle_bench_test.go
rename to erigon-lib/common/eth2shuffle/shuffle_bench_test.go
index a44ef6e428b..45fe2027642 100644
--- a/common/eth2shuffle/shuffle_bench_test.go
+++ b/erigon-lib/common/eth2shuffle/shuffle_bench_test.go
@@ -4,7 +4,7 @@ import (
"fmt"
"testing"
- "github.com/ledgerwatch/erigon/common/eth2shuffle"
+ "github.com/ledgerwatch/erigon-lib/common/eth2shuffle"
)
func BenchmarkPermuteIndex(b *testing.B) {
diff --git a/common/eth2shuffle/shuffle_test.go b/erigon-lib/common/eth2shuffle/shuffle_test.go
similarity index 98%
rename from common/eth2shuffle/shuffle_test.go
rename to erigon-lib/common/eth2shuffle/shuffle_test.go
index b19c45305bb..1f5cfda530c 100644
--- a/common/eth2shuffle/shuffle_test.go
+++ b/erigon-lib/common/eth2shuffle/shuffle_test.go
@@ -10,7 +10,7 @@ import (
"strings"
"testing"
- "github.com/ledgerwatch/erigon/common/eth2shuffle"
+ "github.com/ledgerwatch/erigon-lib/common/eth2shuffle"
"github.com/stretchr/testify/assert"
)
diff --git a/common/eth2shuffle/spec/tests.csv b/erigon-lib/common/eth2shuffle/spec/tests.csv
similarity index 100%
rename from common/eth2shuffle/spec/tests.csv
rename to erigon-lib/common/eth2shuffle/spec/tests.csv
diff --git a/common/hasher.go b/erigon-lib/common/hasher.go
similarity index 81%
rename from common/hasher.go
rename to erigon-lib/common/hasher.go
index e92367f9bd0..f9b25295035 100644
--- a/common/hasher.go
+++ b/erigon-lib/common/hasher.go
@@ -4,7 +4,6 @@ import (
"hash"
"sync"
- libcommon "github.com/ledgerwatch/erigon-lib/common"
"golang.org/x/crypto/sha3"
)
@@ -33,19 +32,19 @@ func NewHasher() *Hasher {
}
func ReturnHasherToPool(h *Hasher) { hashersPool.Put(h) }
-func HashData(data []byte) (libcommon.Hash, error) {
+func HashData(data []byte) (Hash, error) {
h := NewHasher()
defer ReturnHasherToPool(h)
_, err := h.Sha.Write(data)
if err != nil {
- return libcommon.Hash{}, err
+ return Hash{}, err
}
- var buf libcommon.Hash
+ var buf Hash
_, err = h.Sha.Read(buf[:])
if err != nil {
- return libcommon.Hash{}, err
+ return Hash{}, err
}
return buf, nil
}
diff --git a/erigon-lib/common/hextobytes.go b/erigon-lib/common/hextobytes.go
new file mode 100644
index 00000000000..79473730a1e
--- /dev/null
+++ b/erigon-lib/common/hextobytes.go
@@ -0,0 +1,9 @@
+package common
+
+import "encoding/hex"
+
+// Hex2Bytes returns the bytes represented by the hexadecimal string str.
+func Hex2Bytes(str string) []byte {
+ h, _ := hex.DecodeString(str)
+ return h
+}
diff --git a/common/hexutil/hexutil.go b/erigon-lib/common/hexutil/hexutil.go
similarity index 75%
rename from common/hexutil/hexutil.go
rename to erigon-lib/common/hexutil/hexutil.go
index 3df5272075c..3efc5d4c1a5 100644
--- a/common/hexutil/hexutil.go
+++ b/erigon-lib/common/hexutil/hexutil.go
@@ -1,33 +1,3 @@
-// Copyright 2016 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
-/*
-Package hexutil implements hex encoding with 0x prefix.
-This encoding is used by the Ethereum RPC API to transport binary data in JSON payloads.
-
-# Encoding Rules
-
-All hex data must have prefix "0x".
-
-For byte slices, the hex data must be of even length. An empty byte slice
-encodes as "0x".
-
-Integers are encoded using the least amount of digits (no leading zero digits). Their
-encoding may be of uneven length. The number zero encodes as "0x0".
-*/
package hexutil
import (
@@ -39,7 +9,7 @@ import (
const uintBits = 32 << (uint64(^uint(0)) >> 63)
-// Errors
+// These errors are from go-ethereum in order to keep compatibility with geth error codes.
var (
ErrEmptyString = &decError{"empty hex string"}
ErrSyntax = &decError{"invalid hex string"}
@@ -66,9 +36,9 @@ func Decode(input string) ([]byte, error) {
}
b, err := hex.DecodeString(input[2:])
if err != nil {
- err = mapError(err)
+ return nil, mapError(err)
}
- return b, err
+ return b, nil
}
// MustDecode decodes a hex string with 0x prefix. It panics for invalid input.
@@ -88,19 +58,9 @@ func DecodeUint64(input string) (uint64, error) {
}
dec, err := strconv.ParseUint(raw, 16, 64)
if err != nil {
- err = mapError(err)
+ return 0, mapError(err)
}
- return dec, err
-}
-
-// MustDecodeUint64 decodes a hex string with 0x prefix as a quantity.
-// It panics for invalid input.
-func MustDecodeUint64(input string) uint64 {
- dec, err := DecodeUint64(input)
- if err != nil {
- panic(err)
- }
- return dec
+ return dec, nil
}
// EncodeUint64 encodes i as a hex string with 0x prefix.
@@ -213,6 +173,8 @@ func decodeNibble(in byte) uint64 {
}
}
+// ignore these errors to keep compatiblity with go ethereum
+// nolint:errorlint
func mapError(err error) error {
if err, ok := err.(*strconv.NumError); ok {
switch err.Err {
@@ -232,7 +194,6 @@ func mapError(err error) error {
}
// CompressNibbles - supports only even number of nibbles
-// This method supports only arrays of even nibbles
//
// HI_NIBBLE(b) = (b >> 4) & 0x0F
// LO_NIBBLE(b) = b & 0x0F
diff --git a/common/hexutil/hexutil_test.go b/erigon-lib/common/hexutil/hexutil_test.go
similarity index 56%
rename from common/hexutil/hexutil_test.go
rename to erigon-lib/common/hexutil/hexutil_test.go
index 17ebd6bb769..4c9f508ad5e 100644
--- a/common/hexutil/hexutil_test.go
+++ b/erigon-lib/common/hexutil/hexutil_test.go
@@ -1,23 +1,8 @@
-// Copyright 2016 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
package hexutil
import (
- "bytes"
+ "fmt"
+ "github.com/stretchr/testify/require"
"math/big"
"testing"
)
@@ -40,14 +25,13 @@ var (
{[]byte{0}, "0x00"},
{[]byte{0, 0, 1, 2}, "0x00000102"},
}
-
encodeBigTests = []marshalTest{
- {referenceBig("0"), "0x0"},
- {referenceBig("1"), "0x1"},
- {referenceBig("ff"), "0xff"},
- {referenceBig("112233445566778899aabbccddeeff"), "0x112233445566778899aabbccddeeff"},
- {referenceBig("80a7f2c1bcc396c00"), "0x80a7f2c1bcc396c00"},
- {referenceBig("-80a7f2c1bcc396c00"), "-0x80a7f2c1bcc396c00"},
+ {bigFromString("0"), "0x0"},
+ {bigFromString("1"), "0x1"},
+ {bigFromString("ff"), "0xff"},
+ {bigFromString("112233445566778899aabbccddeeff"), "0x112233445566778899aabbccddeeff"},
+ {bigFromString("80a7f2c1bcc396c00"), "0x80a7f2c1bcc396c00"},
+ {bigFromString("-80a7f2c1bcc396c00"), "-0x80a7f2c1bcc396c00"},
}
encodeUint64Tests = []marshalTest{
@@ -105,15 +89,15 @@ var (
{input: `0xfffffffff`, want: big.NewInt(0xfffffffff)},
{
input: `0x112233445566778899aabbccddeeff`,
- want: referenceBig("112233445566778899aabbccddeeff"),
+ want: bigFromString("112233445566778899aabbccddeeff"),
},
{
input: `0xffffffffffffffffffffffffffffffffffff`,
- want: referenceBig("ffffffffffffffffffffffffffffffffffff"),
+ want: bigFromString("ffffffffffffffffffffffffffffffffffff"),
},
{
input: `0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`,
- want: referenceBig("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ want: bigFromString("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
},
}
@@ -137,58 +121,55 @@ var (
)
func TestDecode(t *testing.T) {
- for _, test := range decodeBytesTests {
- dec, err := Decode(test.input)
- if !checkError(t, test.input, err, test.wantErr) {
- continue
- }
- if !bytes.Equal(test.want.([]byte), dec) {
- t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want)
- continue
- }
+ for idx, test := range decodeBytesTests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ dec, err := Decode(test.input)
+ checkError(t, test.input, err, test.wantErr)
+ if test.want != nil {
+ require.EqualValues(t, test.want, dec)
+ }
+ })
}
}
func TestEncodeBig(t *testing.T) {
- for _, test := range encodeBigTests {
- enc := EncodeBig(test.input.(*big.Int))
- if enc != test.want {
- t.Errorf("input %x: wrong encoding %s", test.input, enc)
- }
+ for idx, test := range encodeBigTests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ enc := EncodeBig(test.input.(*big.Int))
+ require.EqualValues(t, test.want, enc)
+ })
}
}
func TestDecodeBig(t *testing.T) {
- for _, test := range decodeBigTests {
- dec, err := DecodeBig(test.input)
- if !checkError(t, test.input, err, test.wantErr) {
- continue
- }
- if dec.Cmp(test.want.(*big.Int)) != 0 {
- t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want)
- continue
- }
+ for idx, test := range decodeBigTests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ dec, err := DecodeBig(test.input)
+ checkError(t, test.input, err, test.wantErr)
+ if test.want != nil {
+ require.EqualValues(t, test.want.(*big.Int).String(), dec.String())
+ }
+ })
}
}
func TestEncodeUint64(t *testing.T) {
- for _, test := range encodeUint64Tests {
- enc := EncodeUint64(test.input.(uint64))
- if enc != test.want {
- t.Errorf("input %x: wrong encoding %s", test.input, enc)
- }
+ for idx, test := range encodeUint64Tests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ enc := EncodeUint64(test.input.(uint64))
+ require.EqualValues(t, test.want, enc)
+ })
}
}
func TestDecodeUint64(t *testing.T) {
- for _, test := range decodeUint64Tests {
- dec, err := DecodeUint64(test.input)
- if !checkError(t, test.input, err, test.wantErr) {
- continue
- }
- if dec != test.want.(uint64) {
- t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want)
- continue
- }
+ for idx, test := range decodeUint64Tests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ dec, err := DecodeUint64(test.input)
+ checkError(t, test.input, err, test.wantErr)
+ if test.want != nil {
+ require.EqualValues(t, test.want, dec)
+ }
+ })
}
}
diff --git a/common/hexutil/json.go b/erigon-lib/common/hexutil/json.go
similarity index 97%
rename from common/hexutil/json.go
rename to erigon-lib/common/hexutil/json.go
index 7b7fbcab947..ab9f820a58b 100644
--- a/common/hexutil/json.go
+++ b/erigon-lib/common/hexutil/json.go
@@ -19,6 +19,7 @@ package hexutil
import (
"encoding/hex"
"encoding/json"
+ "errors"
"fmt"
"math/big"
"reflect"
@@ -191,7 +192,7 @@ func (b *Uint) UnmarshalJSON(input []byte) error {
func (b *Uint) UnmarshalText(input []byte) error {
var u64 Uint64
err := u64.UnmarshalText(input)
- if u64 > Uint64(^uint(0)) || err == ErrUint64Range {
+ if u64 > Uint64(^uint(0)) || errors.Is(err, ErrUint64Range) {
return ErrUintRange
} else if err != nil {
return err
@@ -246,6 +247,8 @@ func checkNumberText(input []byte) (raw []byte, err error) {
}
func wrapTypeError(err error, typ reflect.Type) error {
+ // keeping compatiblity with go ethereum tests
+ // nolint:errorlint
if _, ok := err.(*decError); ok {
return &json.UnmarshalTypeError{Value: err.Error(), Type: typ}
}
diff --git a/common/hexutil/json_test.go b/erigon-lib/common/hexutil/json_test.go
similarity index 52%
rename from common/hexutil/json_test.go
rename to erigon-lib/common/hexutil/json_test.go
index 21f4a35ce58..42c6fc172e2 100644
--- a/common/hexutil/json_test.go
+++ b/erigon-lib/common/hexutil/json_test.go
@@ -1,46 +1,29 @@
-// Copyright 2016 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
package hexutil
import (
- "bytes"
"encoding/json"
"errors"
+ "fmt"
"math/big"
"testing"
+
+ "github.com/stretchr/testify/require"
)
-func checkError(t *testing.T, input string, got, want error) bool {
- if got == nil {
- if want != nil {
- t.Errorf("input %s: got no error, want %q", input, want)
- return false
- }
- return true
- }
+func checkError(t *testing.T, input string, got, want error) {
+ t.Helper()
if want == nil {
- t.Errorf("input %s: unexpected error %q", input, got)
- } else if got.Error() != want.Error() {
- t.Errorf("input %s: got error %q, want %q", input, got, want)
+ require.NoErrorf(t, got, "input %s", input)
+ return
+ }
+ if got == nil {
+ require.NoError(t, want, "input %s", input)
+ return
}
- return false
+ require.EqualValues(t, want.Error(), got.Error(), "input %s", input)
}
-func referenceBig(s string) *big.Int {
+func bigFromString(s string) *big.Int {
b, ok := new(big.Int).SetString(s, 16)
if !ok {
panic("invalid")
@@ -64,7 +47,6 @@ var unmarshalBigTests = []unmarshalTest{
input: `"0x10000000000000000000000000000000000000000000000000000000000000000"`,
wantErr: wrapTypeError(ErrBig256Range, bigT),
},
-
// valid encoding
{input: `""`, want: big.NewInt(0)},
{input: `"0x0"`, want: big.NewInt(0)},
@@ -76,29 +58,28 @@ var unmarshalBigTests = []unmarshalTest{
{input: `"0xfffffffff"`, want: big.NewInt(0xfffffffff)},
{
input: `"0x112233445566778899aabbccddeeff"`,
- want: referenceBig("112233445566778899aabbccddeeff"),
+ want: bigFromString("112233445566778899aabbccddeeff"),
},
{
input: `"0xffffffffffffffffffffffffffffffffffff"`,
- want: referenceBig("ffffffffffffffffffffffffffffffffffff"),
+ want: bigFromString("ffffffffffffffffffffffffffffffffffff"),
},
{
input: `"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"`,
- want: referenceBig("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
+ want: bigFromString("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),
},
}
func TestUnmarshalBig(t *testing.T) {
- for _, test := range unmarshalBigTests {
- var v Big
- err := json.Unmarshal([]byte(test.input), &v)
- if !checkError(t, test.input, err, test.wantErr) {
- continue
- }
- if test.want != nil && test.want.(*big.Int).Cmp((*big.Int)(&v)) != 0 {
- t.Errorf("input %s: value mismatch: got %x, want %x", test.input, (*big.Int)(&v), test.want)
- continue
- }
+ for idx, test := range unmarshalBigTests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ var v Big
+ err := json.Unmarshal([]byte(test.input), &v)
+ checkError(t, test.input, err, test.wantErr)
+ if test.want != nil {
+ require.EqualValues(t, test.want.(*big.Int).Bytes(), v.ToInt().Bytes())
+ }
+ })
}
}
@@ -113,21 +94,15 @@ func BenchmarkUnmarshalBig(b *testing.B) {
}
func TestMarshalBig(t *testing.T) {
- for _, test := range encodeBigTests {
- in := test.input.(*big.Int)
- out, err := json.Marshal((*Big)(in))
- if err != nil {
- t.Errorf("%d: %v", in, err)
- continue
- }
- if want := `"` + test.want + `"`; string(out) != want {
- t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want)
- continue
- }
- if out := (*Big)(in).String(); out != test.want {
- t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want)
- continue
- }
+ for idx, test := range encodeBigTests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ in := test.input.(*big.Int)
+ out, err := json.Marshal((*Big)(in))
+ require.NoError(t, err)
+ want := `"` + test.want + `"`
+ require.EqualValues(t, want, string(out))
+ require.EqualValues(t, test.want, (*Big)(in).String())
+ })
}
}
@@ -155,16 +130,15 @@ var unmarshalUint64Tests = []unmarshalTest{
}
func TestUnmarshalUint64(t *testing.T) {
- for _, test := range unmarshalUint64Tests {
- var v Uint64
- err := json.Unmarshal([]byte(test.input), &v)
- if !checkError(t, test.input, err, test.wantErr) {
- continue
- }
- if uint64(v) != test.want.(uint64) {
- t.Errorf("input %s: value mismatch: got %d, want %d", test.input, v, test.want)
- continue
- }
+ for idx, test := range unmarshalUint64Tests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ var v Uint64
+ err := json.Unmarshal([]byte(test.input), &v)
+ checkError(t, test.input, err, test.wantErr)
+ if test.want != nil {
+ require.EqualValues(t, test.want, v)
+ }
+ })
}
}
@@ -172,51 +146,37 @@ func BenchmarkUnmarshalUint64(b *testing.B) {
input := []byte(`"0x123456789abcdf"`)
for i := 0; i < b.N; i++ {
var v Uint64
- v.UnmarshalJSON(input)
+ _ = v.UnmarshalJSON(input)
}
}
func TestMarshalUint64(t *testing.T) {
- for _, test := range encodeUint64Tests {
- in := test.input.(uint64)
- out, err := json.Marshal(Uint64(in))
- if err != nil {
- t.Errorf("%d: %v", in, err)
- continue
- }
- if want := `"` + test.want + `"`; string(out) != want {
- t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want)
- continue
- }
- if out := (Uint64)(in).String(); out != test.want {
- t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want)
- continue
- }
+ for idx, test := range encodeUint64Tests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ in := test.input.(uint64)
+ out, err := json.Marshal(Uint64(in))
+ require.NoError(t, err)
+ want := `"` + test.want + `"`
+ require.EqualValues(t, want, string(out))
+ require.EqualValues(t, test.want, (Uint64)(in).String())
+ })
}
}
func TestMarshalUint(t *testing.T) {
- for _, test := range encodeUintTests {
- in := test.input.(uint)
- out, err := json.Marshal(Uint(in))
- if err != nil {
- t.Errorf("%d: %v", in, err)
- continue
- }
- if want := `"` + test.want + `"`; string(out) != want {
- t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want)
- continue
- }
- if out := (Uint)(in).String(); out != test.want {
- t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want)
- continue
- }
+ for idx, test := range encodeUintTests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ in := test.input.(uint)
+ out, err := json.Marshal(Uint(in))
+ require.NoError(t, err)
+ want := `"` + test.want + `"`
+ require.EqualValues(t, want, string(out))
+ require.EqualValues(t, test.want, (Uint)(in).String())
+ })
}
}
var (
- // These are variables (not constants) to avoid constant overflow
- // checks in the compiler on 32bit platforms.
maxUint33bits = uint64(^uint32(0)) + 1
maxUint64bits = ^uint64(0)
)
@@ -247,20 +207,20 @@ var unmarshalUintTests = []unmarshalTest{
}
func TestUnmarshalUint(t *testing.T) {
- for _, test := range unmarshalUintTests {
- var v Uint
- err := json.Unmarshal([]byte(test.input), &v)
- if uintBits == 32 && test.wantErr32bit != nil {
- checkError(t, test.input, err, test.wantErr32bit)
- continue
- }
- if !checkError(t, test.input, err, test.wantErr) {
- continue
- }
- if uint(v) != test.want.(uint) {
- t.Errorf("input %s: value mismatch: got %d, want %d", test.input, v, test.want)
- continue
- }
+ for idx, test := range unmarshalUintTests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ var v Uint
+ err := json.Unmarshal([]byte(test.input), &v)
+ if uintBits == 32 && test.wantErr32bit != nil {
+ checkError(t, test.input, err, test.wantErr32bit)
+ return
+ }
+ checkError(t, test.input, err, test.wantErr)
+ if test.want != nil {
+ require.EqualValues(t, test.want, v)
+ }
+
+ })
}
}
@@ -282,19 +242,14 @@ func TestUnmarshalFixedUnprefixedText(t *testing.T) {
{input: "0x44444444", want: []byte{0x44, 0x44, 0x44, 0x44}},
}
- for _, test := range tests {
- out := make([]byte, 4)
- err := UnmarshalFixedUnprefixedText("x", []byte(test.input), out)
- switch {
- case err == nil && test.wantErr != nil:
- t.Errorf("%q: got no error, expected %q", test.input, test.wantErr)
- case err != nil && test.wantErr == nil:
- t.Errorf("%q: unexpected error %q", test.input, err)
- case err != nil && err.Error() != test.wantErr.Error():
- t.Errorf("%q: error mismatch: got %q, want %q", test.input, err, test.wantErr)
- }
- if test.want != nil && !bytes.Equal(out, test.want) {
- t.Errorf("%q: output mismatch: got %x, want %x", test.input, out, test.want)
- }
+ for idx, test := range tests {
+ t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) {
+ out := make([]byte, 4)
+ err := UnmarshalFixedUnprefixedText("x", []byte(test.input), out)
+ checkError(t, test.input, err, test.wantErr)
+ if test.want != nil {
+ require.EqualValues(t, out, test.want)
+ }
+ })
}
}
diff --git a/erigon-lib/common/ring/ring.go b/erigon-lib/common/ring/ring.go
new file mode 100644
index 00000000000..7b15887be1e
--- /dev/null
+++ b/erigon-lib/common/ring/ring.go
@@ -0,0 +1,156 @@
+package ring
+
+type Buffer[T any] struct {
+ buf []T
+ // real head is head-1, like this so nil ring is valid
+ head int
+ tail int
+ length int
+}
+
+func MakeBuffer[T any](length, capacity int) Buffer[T] {
+ if length > capacity {
+ panic("length must be less than capacity")
+ }
+ return Buffer[T]{
+ buf: make([]T, capacity),
+ tail: length,
+ length: length,
+ }
+}
+
+func NewBuffer[T any](length, capacity int) *Buffer[T] {
+ r := MakeBuffer[T](length, capacity)
+ return &r
+}
+
+func (r *Buffer[T]) grow() {
+ size := len(r.buf) * 2
+ if size == 0 {
+ size = 2
+ }
+
+ buf := make([]T, size)
+ copy(buf, r.buf[r.head:])
+ copy(buf[len(r.buf[r.head:]):], r.buf[:r.head])
+ r.head = 0
+ r.tail = r.length
+ r.buf = buf
+}
+
+func (r *Buffer[T]) incHead() {
+ // resize
+ if r.length == 0 {
+ panic("smashing detected")
+ }
+ r.length--
+
+ r.head++
+ if r.head == len(r.buf) {
+ r.head = 0
+ }
+}
+
+func (r *Buffer[T]) decHead() {
+ // resize
+ if r.length == len(r.buf) {
+ r.grow()
+ }
+ r.length++
+
+ r.head--
+ if r.head == -1 {
+ r.head = len(r.buf) - 1
+ }
+}
+
+func (r *Buffer[T]) incTail() {
+ // resize
+ if r.length == len(r.buf) {
+ r.grow()
+ }
+ r.length++
+
+ r.tail++
+ if r.tail == len(r.buf) {
+ r.tail = 0
+ }
+}
+
+func (r *Buffer[T]) decTail() {
+ // resize
+ if r.length == 0 {
+ panic("smashing detected")
+ }
+ r.length--
+
+ r.tail--
+ if r.tail == -1 {
+ r.tail = len(r.buf) - 1
+ }
+}
+
+func (r *Buffer[T]) tailSub1() int {
+ tail := r.tail - 1
+ if tail == -1 {
+ tail = len(r.buf) - 1
+ }
+ return tail
+}
+
+func (r *Buffer[T]) PopFront() (T, bool) {
+ if r.length == 0 {
+ return *new(T), false
+ }
+
+ front := r.buf[r.head]
+ r.buf[r.head] = *new(T)
+ r.incHead()
+ return front, true
+}
+
+func (r *Buffer[T]) PopBack() (T, bool) {
+ if r.length == 0 {
+ return *new(T), false
+ }
+
+ r.decTail()
+ back := r.buf[r.tail]
+ r.buf[r.tail] = *new(T)
+ return back, true
+}
+
+func (r *Buffer[T]) Clear() {
+ r.head = 0
+ r.tail = 0
+ r.length = 0
+}
+
+func (r *Buffer[T]) PushFront(value T) {
+ r.decHead()
+ r.buf[r.head] = value
+}
+
+func (r *Buffer[T]) PushBack(value T) {
+ r.incTail()
+ r.buf[r.tailSub1()] = value
+}
+
+func (r *Buffer[T]) Length() int {
+ return r.length
+}
+
+func (r *Buffer[T]) Capacity() int {
+ return len(r.buf)
+}
+
+func (r *Buffer[T]) Get(n int) T {
+ if n >= r.length {
+ panic("index out of range")
+ }
+ ptr := r.head + n
+ if ptr >= len(r.buf) {
+ ptr -= len(r.buf)
+ }
+ return r.buf[ptr]
+}
diff --git a/erigon-lib/common/sorted.go b/erigon-lib/common/sorted.go
new file mode 100644
index 00000000000..2c077fffaeb
--- /dev/null
+++ b/erigon-lib/common/sorted.go
@@ -0,0 +1,43 @@
+/*
+ Copyright 2022 The Erigon contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package common
+
+import (
+ "golang.org/x/exp/constraints"
+ "golang.org/x/exp/slices"
+)
+
+func SortedKeys[K constraints.Ordered, V any](m map[K]V) []K {
+ keys := make([]K, len(m))
+ i := 0
+ for k := range m {
+ keys[i] = k
+ i++
+ }
+ slices.Sort(keys)
+ return keys
+}
+
+func RemoveDuplicatesFromSorted[T constraints.Ordered](slice []T) []T {
+ for i := 1; i < len(slice); i++ {
+ if slice[i] == slice[i-1] {
+ slice = append(slice[:i], slice[i+1:]...)
+ i--
+ }
+ }
+ return slice
+}
diff --git a/common/sorted_test.go b/erigon-lib/common/sorted_test.go
similarity index 51%
rename from common/sorted_test.go
rename to erigon-lib/common/sorted_test.go
index 6465b6ab87c..1ca29dbfb4b 100644
--- a/common/sorted_test.go
+++ b/erigon-lib/common/sorted_test.go
@@ -1,3 +1,19 @@
+/*
+ Copyright 2022 The Erigon contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
package common
import (
diff --git a/crypto/blake2b/blake2b.go b/erigon-lib/crypto/blake2b/blake2b.go
similarity index 100%
rename from crypto/blake2b/blake2b.go
rename to erigon-lib/crypto/blake2b/blake2b.go
diff --git a/crypto/blake2b/blake2bAVX2_amd64.go b/erigon-lib/crypto/blake2b/blake2bAVX2_amd64.go
similarity index 100%
rename from crypto/blake2b/blake2bAVX2_amd64.go
rename to erigon-lib/crypto/blake2b/blake2bAVX2_amd64.go
diff --git a/crypto/blake2b/blake2bAVX2_amd64.s b/erigon-lib/crypto/blake2b/blake2bAVX2_amd64.s
similarity index 100%
rename from crypto/blake2b/blake2bAVX2_amd64.s
rename to erigon-lib/crypto/blake2b/blake2bAVX2_amd64.s
diff --git a/crypto/blake2b/blake2b_amd64.go b/erigon-lib/crypto/blake2b/blake2b_amd64.go
similarity index 100%
rename from crypto/blake2b/blake2b_amd64.go
rename to erigon-lib/crypto/blake2b/blake2b_amd64.go
diff --git a/crypto/blake2b/blake2b_amd64.s b/erigon-lib/crypto/blake2b/blake2b_amd64.s
similarity index 100%
rename from crypto/blake2b/blake2b_amd64.s
rename to erigon-lib/crypto/blake2b/blake2b_amd64.s
diff --git a/crypto/blake2b/blake2b_f_fuzz.go b/erigon-lib/crypto/blake2b/blake2b_f_fuzz.go
similarity index 100%
rename from crypto/blake2b/blake2b_f_fuzz.go
rename to erigon-lib/crypto/blake2b/blake2b_f_fuzz.go
diff --git a/crypto/blake2b/blake2b_f_test.go b/erigon-lib/crypto/blake2b/blake2b_f_test.go
similarity index 100%
rename from crypto/blake2b/blake2b_f_test.go
rename to erigon-lib/crypto/blake2b/blake2b_f_test.go
diff --git a/crypto/blake2b/blake2b_generic.go b/erigon-lib/crypto/blake2b/blake2b_generic.go
similarity index 100%
rename from crypto/blake2b/blake2b_generic.go
rename to erigon-lib/crypto/blake2b/blake2b_generic.go
diff --git a/crypto/blake2b/blake2b_ref.go b/erigon-lib/crypto/blake2b/blake2b_ref.go
similarity index 100%
rename from crypto/blake2b/blake2b_ref.go
rename to erigon-lib/crypto/blake2b/blake2b_ref.go
diff --git a/crypto/blake2b/blake2b_test.go b/erigon-lib/crypto/blake2b/blake2b_test.go
similarity index 99%
rename from crypto/blake2b/blake2b_test.go
rename to erigon-lib/crypto/blake2b/blake2b_test.go
index 14f2e3bb73d..dae10de1e55 100644
--- a/crypto/blake2b/blake2b_test.go
+++ b/erigon-lib/crypto/blake2b/blake2b_test.go
@@ -8,14 +8,17 @@ import (
"bytes"
"encoding"
"encoding/hex"
+ "errors"
"fmt"
- "github.com/ledgerwatch/log/v3"
"hash"
"io"
"testing"
+
+ "github.com/ledgerwatch/log/v3"
)
func TestHashes(t *testing.T) {
+ t.Helper()
defer func(sse4, avx, avx2 bool) {
useSSE4, useAVX, useAVX2 = sse4, avx, avx2
}(useSSE4, useAVX, useAVX2)
@@ -40,6 +43,7 @@ func TestHashes(t *testing.T) {
}
func TestHashes2X(t *testing.T) {
+ t.Helper()
defer func(sse4, avx, avx2 bool) {
useSSE4, useAVX, useAVX2 = sse4, avx, avx2
}(useSSE4, useAVX, useAVX2)
@@ -116,6 +120,7 @@ func TestMarshal(t *testing.T) {
}
func testHashes(t *testing.T) {
+ t.Helper()
key, _ := hex.DecodeString("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f")
input := make([]byte, 255)
@@ -149,6 +154,7 @@ func testHashes(t *testing.T) {
}
func testHashes2X(t *testing.T) {
+ t.Helper()
key, _ := hex.DecodeString("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f")
input := make([]byte, 256)
@@ -171,7 +177,7 @@ func testHashes2X(t *testing.T) {
if _, err := h.Read(sum); err != nil {
t.Fatalf("#%d (single write): error from Read: %v", i, err)
}
- if n, err := h.Read(sum); n != 0 || err != io.EOF {
+ if n, err := h.Read(sum); n != 0 || !errors.Is(err, io.EOF) {
t.Fatalf("#%d (single write): Read did not return (0, io.EOF) after exhaustion, got (%v, %v)", i, n, err)
}
if gotHex := fmt.Sprintf("%x", sum); gotHex != expectedHex {
@@ -300,6 +306,7 @@ func TestSelfTest(t *testing.T) {
// Benchmarks
func benchmarkSum(b *testing.B, size int, sse4, avx, avx2 bool) {
+ b.Helper()
// Enable the correct set of instructions
defer func(sse4, avx, avx2 bool) {
useSSE4, useAVX, useAVX2 = sse4, avx, avx2
@@ -315,6 +322,7 @@ func benchmarkSum(b *testing.B, size int, sse4, avx, avx2 bool) {
}
func benchmarkWrite(b *testing.B, size int, sse4, avx, avx2 bool) {
+ b.Helper()
// Enable the correct set of instructions
defer func(sse4, avx, avx2 bool) {
useSSE4, useAVX, useAVX2 = sse4, avx, avx2
diff --git a/crypto/blake2b/blake2x.go b/erigon-lib/crypto/blake2b/blake2x.go
similarity index 100%
rename from crypto/blake2b/blake2x.go
rename to erigon-lib/crypto/blake2b/blake2x.go
diff --git a/crypto/blake2b/register.go b/erigon-lib/crypto/blake2b/register.go
similarity index 100%
rename from crypto/blake2b/register.go
rename to erigon-lib/crypto/blake2b/register.go
diff --git a/erigon-lib/crypto/kzg/kzg.go b/erigon-lib/crypto/kzg/kzg.go
index 8ba97a74645..0008126a286 100644
--- a/erigon-lib/crypto/kzg/kzg.go
+++ b/erigon-lib/crypto/kzg/kzg.go
@@ -62,7 +62,7 @@ func InitKZGCtx() {
var err error
// Initialize context to match the configurations that the
// specs are using.
- gokzgCtx, err = gokzg4844.NewContext4096Insecure1337()
+ gokzgCtx, err = gokzg4844.NewContext4096Secure()
if err != nil {
panic(fmt.Sprintf("could not create context, err : %v", err))
}
diff --git a/cmd/sentinel/sentinel/request.go b/erigon-lib/diagnostics/entities.go
similarity index 58%
rename from cmd/sentinel/sentinel/request.go
rename to erigon-lib/diagnostics/entities.go
index d1e8e8cebf5..9b03d7813f2 100644
--- a/cmd/sentinel/sentinel/request.go
+++ b/erigon-lib/diagnostics/entities.go
@@ -1,9 +1,12 @@
/*
- Copyright 2022 Erigon-Lightclient contributors
+ Copyright 2021 Erigon contributors
+
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
+
http://www.apache.org/licenses/LICENSE-2.0
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -11,22 +14,17 @@
limitations under the License.
*/
-package sentinel
+package diagnostics
-import (
- "fmt"
-
- "github.com/libp2p/go-libp2p/core/peer"
-)
+type PeerStatisticsGetter interface {
+ GetPeersStatistics() map[string]*PeerStatistics
+}
-func (s *Sentinel) RandomPeer(topic string) (peer.ID, error) {
- var (
- pid peer.ID
- err error
- )
- pid, err = connectToRandomPeer(s, string(BeaconBlockTopic))
- if err != nil {
- return peer.ID(""), fmt.Errorf("failed to connect to a random peer err=%s", err)
- }
- return pid, nil
+type PeerStatistics struct {
+ BytesIn uint64
+ BytesOut uint64
+ CapBytesIn map[string]uint64
+ CapBytesOut map[string]uint64
+ TypeBytesIn map[string]uint64
+ TypeBytesOut map[string]uint64
}
diff --git a/erigon-lib/diagnostics/network.go b/erigon-lib/diagnostics/network.go
new file mode 100644
index 00000000000..08bfaed8d31
--- /dev/null
+++ b/erigon-lib/diagnostics/network.go
@@ -0,0 +1,23 @@
+/*
+ Copyright 2021 Erigon contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package diagnostics
+
+import "reflect"
+
+func (p PeerStatistics) Type() Type {
+ return Type(reflect.TypeOf(p))
+}
diff --git a/erigon-lib/diagnostics/provider.go b/erigon-lib/diagnostics/provider.go
new file mode 100644
index 00000000000..c1c2ae756c7
--- /dev/null
+++ b/erigon-lib/diagnostics/provider.go
@@ -0,0 +1,141 @@
+package diagnostics
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "reflect"
+ "sync"
+
+ "github.com/ledgerwatch/erigon-lib/common/dbg"
+ "github.com/ledgerwatch/log/v3"
+)
+
+type ctxKey int
+
+const (
+ ckChan ctxKey = iota
+)
+
+type Type reflect.Type
+
+type Info interface {
+ Type() Type
+}
+
+func TypeOf(i Info) Type {
+ t := reflect.TypeOf(i)
+ return Type(t)
+}
+
+type Provider interface {
+ StartDiagnostics(ctx context.Context) error
+}
+
+type ProviderFunc func(ctx context.Context) error
+
+func (f ProviderFunc) StartDiagnostics(ctx context.Context) error {
+ return f(ctx)
+}
+
+type registry struct {
+ context context.Context
+ providers []Provider
+}
+
+var providers = map[Type]*registry{}
+var providerMutex sync.RWMutex
+
+func RegisterProvider(provider Provider, infoType Type, logger log.Logger) {
+ providerMutex.Lock()
+ defer providerMutex.Unlock()
+
+ reg, _ := providers[infoType]
+
+ if reg != nil {
+ for _, p := range reg.providers {
+ if p == provider {
+ return
+ }
+ }
+ } else {
+ reg = ®istry{}
+ providers[infoType] = reg
+ }
+
+ reg.providers = append(reg.providers, provider)
+
+ if reg.context != nil {
+ go startProvider(reg.context, infoType, provider, logger)
+ }
+}
+
+func StartProviders(ctx context.Context, infoType Type, logger log.Logger) {
+ providerMutex.Lock()
+
+ reg, _ := providers[infoType]
+
+ toStart := make([]Provider, len(reg.providers))
+
+ for i, provider := range reg.providers {
+ toStart[i] = provider
+ }
+
+ reg.context = ctx
+
+ providerMutex.Unlock()
+
+ for _, provider := range toStart {
+ go startProvider(ctx, infoType, provider, logger)
+ }
+}
+
+func startProvider(ctx context.Context, infoType Type, provider Provider, logger log.Logger) {
+ defer func() {
+ if rec := recover(); rec != nil {
+ err := fmt.Errorf("%+v, trace: %s", rec, dbg.Stack())
+ logger.Warn("Diagnostic provider failed", "type", infoType, "err", err)
+ }
+ }()
+
+ if err := provider.StartDiagnostics(ctx); err != nil {
+ if !errors.Is(err, context.Canceled) {
+ logger.Warn("Diagnostic provider failed", "type", infoType, "err", err)
+ }
+ }
+}
+
+func Send[I Info](ctx context.Context, info I) error {
+ if ctx.Err() != nil {
+ return ctx.Err()
+ }
+
+ cval := ctx.Value(ckChan)
+ if c, ok := cval.(chan I); ok {
+ select {
+ case c <- info:
+ default:
+ // drop the diagnostic message if the receiver is busy
+ // so the sender is not blocked on non critcal actions
+ }
+ } else {
+ return fmt.Errorf("unexpected channel type: %T", cval)
+ }
+
+ return nil
+}
+
+func Context[I Info](ctx context.Context, buffer int) (context.Context, <-chan I, context.CancelFunc) {
+ ch := make(chan I, buffer)
+ ctx = context.WithValue(ctx, ckChan, ch)
+ ctx, cancel := context.WithCancel(ctx)
+
+ return ctx, ch, func() {
+ if ch != nil {
+ toClose := ch
+ ch = nil
+ close(toClose)
+ }
+ cancel()
+ }
+}
diff --git a/erigon-lib/diagnostics/provider_test.go b/erigon-lib/diagnostics/provider_test.go
new file mode 100644
index 00000000000..7d8ea6b10ec
--- /dev/null
+++ b/erigon-lib/diagnostics/provider_test.go
@@ -0,0 +1,87 @@
+package diagnostics_test
+
+import (
+ "context"
+ "testing"
+ "time"
+
+ "github.com/ledgerwatch/erigon-lib/diagnostics"
+ "github.com/ledgerwatch/log/v3"
+)
+
+type testInfo struct {
+ count int
+}
+
+func (ti testInfo) Type() diagnostics.Type {
+ return diagnostics.TypeOf(ti)
+}
+
+type testProvider struct {
+}
+
+func (t *testProvider) StartDiagnostics(ctx context.Context) error {
+ timer := time.NewTicker(1 * time.Second)
+ defer timer.Stop()
+
+ var count int
+
+ for {
+ select {
+ case <-ctx.Done():
+ return nil
+ case <-timer.C:
+ diagnostics.Send(ctx, testInfo{count})
+ count++
+ }
+ }
+}
+
+func TestProviderRegistration(t *testing.T) {
+
+ // diagnostics provider
+ provider := &testProvider{}
+ diagnostics.RegisterProvider(provider, diagnostics.TypeOf(testInfo{}), log.Root())
+
+ // diagnostics receiver
+ ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1)
+ diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root())
+
+ for info := range ch {
+ if info.count == 3 {
+ cancel()
+ }
+ }
+}
+
+func TestProviderFuncRegistration(t *testing.T) {
+
+ // diagnostics provider
+ diagnostics.RegisterProvider(diagnostics.ProviderFunc(func(ctx context.Context) error {
+ timer := time.NewTicker(1 * time.Second)
+ defer timer.Stop()
+
+ var count int
+
+ for {
+ select {
+ case <-ctx.Done():
+ return nil
+ case <-timer.C:
+ diagnostics.Send(ctx, testInfo{count})
+ count++
+ }
+ }
+ }), diagnostics.TypeOf(testInfo{}), log.Root())
+
+ // diagnostics receiver
+ ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1)
+
+ diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root())
+
+ for info := range ch {
+ if info.count == 3 {
+ cancel()
+ }
+ }
+}
diff --git a/erigon-lib/direct/downloader_client.go b/erigon-lib/direct/downloader_client.go
index a6924a1ebe7..abb85adc88f 100644
--- a/erigon-lib/direct/downloader_client.go
+++ b/erigon-lib/direct/downloader_client.go
@@ -35,6 +35,9 @@ func NewDownloaderClient(server proto_downloader.DownloaderServer) *DownloaderCl
func (c *DownloaderClient) Download(ctx context.Context, in *proto_downloader.DownloadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
return c.server.Download(ctx, in)
}
+func (c *DownloaderClient) Delete(ctx context.Context, in *proto_downloader.DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+ return c.server.Delete(ctx, in)
+}
func (c *DownloaderClient) Verify(ctx context.Context, in *proto_downloader.VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
return c.server.Verify(ctx, in)
}
diff --git a/erigon-lib/direct/execution_client.go b/erigon-lib/direct/execution_client.go
index d5899815eae..e2e8d8da1c9 100644
--- a/erigon-lib/direct/execution_client.go
+++ b/erigon-lib/direct/execution_client.go
@@ -96,3 +96,7 @@ func (s *ExecutionClientDirect) GetForkChoice(ctx context.Context, in *emptypb.E
func (s *ExecutionClientDirect) Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.ReadyResponse, error) {
return s.server.Ready(ctx, in)
}
+
+func (s *ExecutionClientDirect) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.FrozenBlocksResponse, error) {
+ return s.server.FrozenBlocks(ctx, in)
+}
diff --git a/erigon-lib/direct/sentinel_client.go b/erigon-lib/direct/sentinel_client.go
index 86481b4fb77..f421f4332bf 100644
--- a/erigon-lib/direct/sentinel_client.go
+++ b/erigon-lib/direct/sentinel_client.go
@@ -20,6 +20,7 @@ import (
"context"
"io"
+ "github.com/ledgerwatch/erigon-lib/diagnostics"
"github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
"google.golang.org/grpc"
)
@@ -110,3 +111,12 @@ func (s *SentinelSubscribeGossipS) Err(err error) {
}
s.ch <- &gossipReply{err: err}
}
+
+func (s *SentinelClientDirect) GetPeersStatistics() map[string]*diagnostics.PeerStatistics {
+
+ if diag, ok := s.server.(diagnostics.PeerStatisticsGetter); ok {
+ return diag.GetPeersStatistics()
+ }
+
+ return map[string]*diagnostics.PeerStatistics{}
+}
diff --git a/erigon-lib/downloader/downloader.go b/erigon-lib/downloader/downloader.go
index 4159f844716..9498479ce59 100644
--- a/erigon-lib/downloader/downloader.go
+++ b/erigon-lib/downloader/downloader.go
@@ -78,7 +78,7 @@ type AggStats struct {
UploadRate, DownloadRate uint64
}
-func New(ctx context.Context, cfg *downloadercfg.Cfg, logger log.Logger, verbosity log.Lvl) (*Downloader, error) {
+func New(ctx context.Context, cfg *downloadercfg.Cfg, dirs datadir.Dirs, logger log.Logger, verbosity log.Lvl) (*Downloader, error) {
db, c, m, torrentClient, err := openClient(ctx, cfg.Dirs.Downloader, cfg.Dirs.Snap, cfg.ClientConfig)
if err != nil {
return nil, fmt.Errorf("openClient: %w", err)
@@ -119,7 +119,7 @@ func New(ctx context.Context, cfg *downloadercfg.Cfg, logger log.Logger, verbosi
d.wg.Add(1)
go func() {
defer d.wg.Done()
- d.webseeds.Discover(d.ctx, d.cfg.WebSeedUrls, d.cfg.WebSeedFiles, d.cfg.Dirs.Snap)
+ d.webseeds.Discover(d.ctx, d.cfg.WebSeedS3Tokens, d.cfg.WebSeedUrls, d.cfg.WebSeedFiles, d.cfg.Dirs.Snap)
// webseeds.Discover may create new .torrent files on disk
if err := d.addTorrentFilesFromDisk(true); err != nil && !errors.Is(err, context.Canceled) {
d.logger.Warn("[snapshots] addTorrentFilesFromDisk", "err", err)
@@ -610,9 +610,9 @@ func openClient(ctx context.Context, dbDir, snapDir string, cfg *torrent.ClientC
db, err = mdbx.NewMDBX(log.New()).
Label(kv.DownloaderDB).
WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.DownloaderTablesCfg }).
- SyncPeriod(15 * time.Second).
GrowthStep(16 * datasize.MB).
MapSize(16 * datasize.GB).
+ PageSize(uint64(8 * datasize.KB)).
Path(dbDir).
Open(ctx)
if err != nil {
diff --git a/erigon-lib/downloader/downloader_grpc_server.go b/erigon-lib/downloader/downloader_grpc_server.go
index 8ac52512871..61398d74bcd 100644
--- a/erigon-lib/downloader/downloader_grpc_server.go
+++ b/erigon-lib/downloader/downloader_grpc_server.go
@@ -19,6 +19,8 @@ package downloader
import (
"context"
"fmt"
+ "os"
+ "path/filepath"
"time"
"github.com/anacrolix/torrent/metainfo"
@@ -44,6 +46,7 @@ type GrpcServer struct {
// Download - create new .torrent ONLY if initialSync, everything else Erigon can generate by itself
func (s *GrpcServer) Download(ctx context.Context, request *proto_downloader.DownloadRequest) (*emptypb.Empty, error) {
+ defer s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag
logEvery := time.NewTicker(20 * time.Second)
defer logEvery.Stop()
@@ -70,7 +73,33 @@ func (s *GrpcServer) Download(ctx context.Context, request *proto_downloader.Dow
return nil, err
}
}
- s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag
+ return &emptypb.Empty{}, nil
+}
+
+// Delete - stop seeding, remove file, remove .torrent
+func (s *GrpcServer) Delete(ctx context.Context, request *proto_downloader.DeleteRequest) (*emptypb.Empty, error) {
+ defer s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag
+ torrents := s.d.torrentClient.Torrents()
+ for _, name := range request.Paths {
+ if name == "" {
+ return nil, fmt.Errorf("field 'path' is required")
+ }
+ for _, t := range torrents {
+ select {
+ case <-t.GotInfo():
+ continue
+ default:
+ }
+ if t.Name() == name {
+ t.Drop()
+ break
+ }
+ }
+
+ fPath := filepath.Join(s.d.SnapDir(), name)
+ _ = os.Remove(fPath)
+ _ = os.Remove(fPath + ".torrent")
+ }
return &emptypb.Empty{}, nil
}
diff --git a/erigon-lib/downloader/downloader_test.go b/erigon-lib/downloader/downloader_test.go
index 493e3bddd43..5a82307b38b 100644
--- a/erigon-lib/downloader/downloader_test.go
+++ b/erigon-lib/downloader/downloader_test.go
@@ -16,9 +16,9 @@ import (
func TestChangeInfoHashOfSameFile(t *testing.T) {
require := require.New(t)
dirs := datadir.New(t.TempDir())
- cfg, err := downloadercfg2.New(dirs, "", lg.Info, 0, 0, 0, 0, 0, nil, "")
+ cfg, err := downloadercfg2.New(dirs, "", lg.Info, 0, 0, 0, 0, 0, nil, nil, "testnet")
require.NoError(err)
- d, err := New(context.Background(), cfg, log.New(), log.LvlInfo)
+ d, err := New(context.Background(), cfg, dirs, log.New(), log.LvlInfo)
require.NoError(err)
defer d.Close()
err = d.AddInfoHashAsMagnetLink(d.ctx, snaptype.Hex2InfoHash("aa"), "a.seg")
diff --git a/erigon-lib/downloader/downloadercfg/downloadercfg.go b/erigon-lib/downloader/downloadercfg/downloadercfg.go
index f8737d2f6a9..b9e1d0dc289 100644
--- a/erigon-lib/downloader/downloadercfg/downloadercfg.go
+++ b/erigon-lib/downloader/downloadercfg/downloadercfg.go
@@ -29,7 +29,6 @@ import (
lg "github.com/anacrolix/log"
"github.com/anacrolix/torrent"
"github.com/c2h5oh/datasize"
- "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/common/dir"
"github.com/ledgerwatch/log/v3"
@@ -51,14 +50,19 @@ type Cfg struct {
WebSeedUrls []*url.URL
WebSeedFiles []string
+ WebSeedS3Tokens []string
DownloadTorrentFilesFromWebseed bool
+ ChainName string
Dirs datadir.Dirs
}
func Default() *torrent.ClientConfig {
torrentConfig := torrent.NewDefaultClientConfig()
- torrentConfig.PieceHashersPerTorrent = runtime.NumCPU()
+ // better don't increase because erigon periodically producing "new seedable files" - and adding them to downloader.
+ // it must not impact chain tip sync - so, limit resources to minimum by default.
+ // but when downloader is started as a separated process - rise it to max
+ //torrentConfig.PieceHashersPerTorrent = cmp.Max(1, runtime.NumCPU()-1)
torrentConfig.MinDialTimeout = 6 * time.Second //default: 3s
torrentConfig.HandshakesTimeout = 8 * time.Second //default: 4s
@@ -85,7 +89,7 @@ func Default() *torrent.ClientConfig {
return torrentConfig
}
-func New(dirs datadir.Dirs, version string, verbosity lg.Level, downloadRate, uploadRate datasize.ByteSize, port, connsPerFile, downloadSlots int, staticPeers []string, webseeds string) (*Cfg, error) {
+func New(dirs datadir.Dirs, version string, verbosity lg.Level, downloadRate, uploadRate datasize.ByteSize, port, connsPerFile, downloadSlots int, staticPeers, webseeds []string, chainName string) (*Cfg, error) {
torrentConfig := Default()
torrentConfig.DataDir = dirs.Snap // `DataDir` of torrent-client-lib is different from Erigon's `DataDir`. Just same naming.
@@ -144,27 +148,31 @@ func New(dirs datadir.Dirs, version string, verbosity lg.Level, downloadRate, up
//staticPeers
}
- webseedUrlsOrFiles := common.CliString2Array(webseeds)
- webseedUrls := make([]*url.URL, 0, len(webseedUrlsOrFiles))
- webseedFiles := make([]string, 0, len(webseedUrlsOrFiles))
+ webseedUrlsOrFiles := webseeds
+ webseedHttpProviders := make([]*url.URL, 0, len(webseedUrlsOrFiles))
+ webseedFileProviders := make([]string, 0, len(webseedUrlsOrFiles))
+ webseedS3Providers := make([]string, 0, len(webseedUrlsOrFiles))
for _, webseed := range webseedUrlsOrFiles {
+ if strings.HasPrefix(webseed, "v") { // has marker v1/v2/...
+ webseedS3Providers = append(webseedS3Providers, webseed)
+ continue
+ }
uri, err := url.ParseRequestURI(webseed)
if err != nil {
if strings.HasSuffix(webseed, ".toml") && dir.FileExist(webseed) {
- webseedFiles = append(webseedFiles, webseed)
+ webseedFileProviders = append(webseedFileProviders, webseed)
}
continue
}
- webseedUrls = append(webseedUrls, uri)
+ webseedHttpProviders = append(webseedHttpProviders, uri)
}
localCfgFile := filepath.Join(dirs.DataDir, "webseed.toml") // datadir/webseed.toml allowed
if dir.FileExist(localCfgFile) {
- webseedFiles = append(webseedFiles, localCfgFile)
+ webseedFileProviders = append(webseedFileProviders, localCfgFile)
}
-
- return &Cfg{Dirs: dirs,
+ return &Cfg{Dirs: dirs, ChainName: chainName,
ClientConfig: torrentConfig, DownloadSlots: downloadSlots,
- WebSeedUrls: webseedUrls, WebSeedFiles: webseedFiles,
+ WebSeedUrls: webseedHttpProviders, WebSeedFiles: webseedFileProviders, WebSeedS3Tokens: webseedS3Providers,
}, nil
}
diff --git a/erigon-lib/downloader/downloadercfg/logger.go b/erigon-lib/downloader/downloadercfg/logger.go
index 8878e9004ed..b3a3178d101 100644
--- a/erigon-lib/downloader/downloadercfg/logger.go
+++ b/erigon-lib/downloader/downloadercfg/logger.go
@@ -73,81 +73,65 @@ func (b adapterHandler) Handle(r lg.Record) {
strings.Contains(str, "EOF") || strings.Contains(str, "closed") || strings.Contains(str, "connection reset by peer") || strings.Contains(str, "use of closed network connection") || strings.Contains(str, "broken pipe") ||
strings.Contains(str, "inited with remoteAddr")
if skip {
+ log.Trace(str, "lvl", lvl.LogString())
break
}
log.Debug(str)
case lg.Info:
str := r.String()
- skip := false //strings.Contains(str, "EOF")
+ skip := strings.Contains(str, "EOF")
//strings.Contains(str, "banning ip ") ||
//strings.Contains(str, "spurious timer") { // suppress useless errors
if skip {
+ log.Trace(str, "lvl", lvl.LogString())
break
}
-
log.Info(str)
case lg.Warning:
str := r.String()
- skip := false
-
- //if strings.Contains(str, "could not find offer for id") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "webrtc conn for unloaded torrent") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "TrackerClient closed") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "banned ip") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "being sole dirtier of piece") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "requested chunk too long") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "reservation cancelled") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "received invalid reject") { // suppress useless errors
- // break
- //}
+ skip := strings.Contains(str, "EOF") ||
+ strings.Contains(str, "requested chunk too long") ||
+ strings.Contains(str, "banned ip") ||
+ strings.Contains(str, "banning webseed") ||
+ strings.Contains(str, "TrackerClient closed") ||
+ strings.Contains(str, "being sole dirtier of piece") ||
+ strings.Contains(str, "webrtc conn for unloaded torrent") ||
+ strings.Contains(str, "could not find offer for id") ||
+ strings.Contains(str, "received invalid reject") ||
+ strings.Contains(str, "reservation cancelled")
if skip {
+ log.Trace(str)
break
}
log.Warn(str)
case lg.Error:
str := r.String()
- skip := false
- //if strings.Contains(str, "EOF") { // suppress useless errors
- // break
- //}
-
+ skip := strings.Contains(str, "EOF") ||
+ strings.Contains(str, "short write") ||
+ strings.Contains(str, "disabling data download")
if skip {
+ log.Trace(str, "lvl", lvl.LogString())
break
}
log.Error(str)
case lg.Critical:
str := r.String()
- skip := false
- //if strings.Contains(str, "EOF") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "don't want conns") { // suppress useless errors
- // break
- //}
- //if strings.Contains(str, "torrent closed") { // suppress useless errors
- // break
- //}
-
+ skip := strings.Contains(str, "EOF") ||
+ strings.Contains(str, "torrent closed") ||
+ strings.Contains(str, "don't want conns")
if skip {
+ log.Trace(str, "lvl", lvl.LogString())
break
}
log.Error(str)
default:
+ str := r.String()
+ skip := strings.Contains(str, "EOF") || strings.Contains(str, "unhandled response status")
+ if skip {
+ log.Trace(str, "lvl", lvl.LogString())
+ break
+ }
log.Info("[downloader] "+r.String(), "torrent_log_type", "unknown", "or", lvl.LogString())
}
}
diff --git a/erigon-lib/downloader/snaptype/files.go b/erigon-lib/downloader/snaptype/files.go
index e45ecd598eb..069707cfe29 100644
--- a/erigon-lib/downloader/snaptype/files.go
+++ b/erigon-lib/downloader/snaptype/files.go
@@ -41,8 +41,11 @@ const (
BorEvents
BorSpans
NumberOfTypes
+ BeaconBlocks
)
+var BorSnapshotTypes = []Type{BorEvents, BorSpans}
+
func (ft Type) String() string {
switch ft {
case Headers:
@@ -55,6 +58,8 @@ func (ft Type) String() string {
return "borevents"
case BorSpans:
return "borspans"
+ case BeaconBlocks:
+ return "beaconblocks"
default:
panic(fmt.Sprintf("unknown file type: %d", ft))
}
@@ -72,6 +77,8 @@ func ParseFileType(s string) (Type, bool) {
return BorEvents, true
case "borspans":
return BorSpans, true
+ case "beaconblocks":
+ return BeaconBlocks, true
default:
return NumberOfTypes, false
}
@@ -85,7 +92,7 @@ const (
func (it IdxType) String() string { return string(it) }
-var AllSnapshotTypes = []Type{Headers, Bodies, Transactions}
+var BlockSnapshotTypes = []Type{Headers, Bodies, Transactions}
var (
ErrInvalidFileName = fmt.Errorf("invalid compressed file name")
@@ -117,7 +124,7 @@ func FilesWithExt(dir, expectExt string) ([]FileInfo, error) {
func IsCorrectFileName(name string) bool {
parts := strings.Split(name, "-")
- return len(parts) == 4 && parts[3] != "v1"
+ return len(parts) == 4
}
func IsCorrectHistoryFileName(name string) bool {
@@ -150,7 +157,15 @@ func ParseFileName(dir, fileName string) (res FileInfo, ok bool) {
}
const Erigon3SeedableSteps = 32
-const Erigon2SegmentSize = 500_000
+
+// Use-cases:
+// - produce and seed snapshots earlier on chain tip. reduce depnedency on "good peers with history" at p2p-network.
+// Some networks have no much archive peers, also ConsensusLayer clients are not-good(not-incentivised) at serving history.
+// - avoiding having too much files:
+// more files(shards) - means "more metadata", "more lookups for non-indexed queries", "more dictionaries", "more bittorrent connections", ...
+// less files - means small files will be removed after merge (no peers for this files).
+const Erigon2RecentMergeLimit = 100_000 //nolint
+const Erigon2MergeLimit = 500_000
const Erigon2MinSegmentSize = 1_000
// FileInfo - parsed file metadata
@@ -162,8 +177,10 @@ type FileInfo struct {
}
func (f FileInfo) TorrentFileExists() bool { return dir.FileExist(f.Path + ".torrent") }
-func (f FileInfo) Seedable() bool { return f.To-f.From == Erigon2SegmentSize }
-func (f FileInfo) NeedTorrentFile() bool { return f.Seedable() && !f.TorrentFileExists() }
+func (f FileInfo) Seedable() bool {
+ return f.To-f.From == Erigon2MergeLimit || f.To-f.From == Erigon2RecentMergeLimit
+}
+func (f FileInfo) NeedTorrentFile() bool { return f.Seedable() && !f.TorrentFileExists() }
func IdxFiles(dir string) (res []FileInfo, err error) { return FilesWithExt(dir, ".idx") }
func Segments(dir string) (res []FileInfo, err error) { return FilesWithExt(dir, ".seg") }
diff --git a/erigon-lib/downloader/util.go b/erigon-lib/downloader/util.go
index 7bf8f58274b..cc557e09f55 100644
--- a/erigon-lib/downloader/util.go
+++ b/erigon-lib/downloader/util.go
@@ -292,23 +292,6 @@ func loadTorrent(torrentFilePath string) (*torrent.TorrentSpec, error) {
mi.AnnounceList = Trackers
return torrent.TorrentSpecFromMetaInfoErr(mi)
}
-func saveTorrent(torrentFilePath string, res []byte) error {
- if len(res) == 0 {
- return fmt.Errorf("try to write 0 bytes to file: %s", torrentFilePath)
- }
- f, err := os.Create(torrentFilePath)
- if err != nil {
- return err
- }
- defer f.Close()
- if _, err = f.Write(res); err != nil {
- return err
- }
- if err = f.Sync(); err != nil {
- return err
- }
- return nil
-}
// addTorrentFile - adding .torrent file to torrentClient (and checking their hashes), if .torrent file
// added first time - pieces verification process will start (disk IO heavy) - Progress
diff --git a/erigon-lib/downloader/webseed.go b/erigon-lib/downloader/webseed.go
index d0992681e48..5cbb2b0e908 100644
--- a/erigon-lib/downloader/webseed.go
+++ b/erigon-lib/downloader/webseed.go
@@ -1,10 +1,8 @@
package downloader
import (
- "bytes"
"context"
"fmt"
- "io"
"net/http"
"net/url"
"os"
@@ -12,14 +10,15 @@ import (
"strings"
"sync"
- "github.com/anacrolix/torrent/bencode"
+ "github.com/aws/aws-sdk-go-v2/aws"
+ "github.com/aws/aws-sdk-go-v2/config"
+ "github.com/aws/aws-sdk-go-v2/credentials"
+ "github.com/aws/aws-sdk-go-v2/service/s3"
+
"github.com/anacrolix/torrent/metainfo"
- "github.com/c2h5oh/datasize"
- "github.com/ledgerwatch/erigon-lib/common/dir"
"github.com/ledgerwatch/erigon-lib/downloader/snaptype"
"github.com/ledgerwatch/log/v3"
"github.com/pelletier/go-toml/v2"
- "golang.org/x/sync/errgroup"
)
// WebSeeds - allow use HTTP-based infrastrucutre to support Bittorrent network
@@ -35,22 +34,35 @@ type WebSeeds struct {
verbosity log.Lvl
}
-func (d *WebSeeds) Discover(ctx context.Context, urls []*url.URL, files []string, rootDir string) {
- d.downloadWebseedTomlFromProviders(ctx, urls, files)
- d.downloadTorrentFilesFromProviders(ctx, rootDir)
+func (d *WebSeeds) Discover(ctx context.Context, s3tokens []string, urls []*url.URL, files []string, rootDir string) {
+ d.downloadWebseedTomlFromProviders(ctx, s3tokens, urls, files)
}
-func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, providers []*url.URL, diskProviders []string) {
- list := make([]snaptype.WebSeedsFromProvider, 0, len(providers)+len(diskProviders))
- for _, webSeedProviderURL := range providers {
+func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, s3Providers []string, httpProviders []*url.URL, diskProviders []string) {
+ log.Debug("[snapshots] webseed providers", "http", len(httpProviders), "s3", len(s3Providers), "disk", len(diskProviders))
+ list := make([]snaptype.WebSeedsFromProvider, 0, len(httpProviders)+len(diskProviders))
+ for _, webSeedProviderURL := range httpProviders {
select {
case <-ctx.Done():
break
default:
}
- response, err := d.callWebSeedsProvider(ctx, webSeedProviderURL)
+ response, err := d.callHttpProvider(ctx, webSeedProviderURL)
if err != nil { // don't fail on error
- d.logger.Debug("[snapshots] downloadWebseedTomlFromProviders", "err", err, "url", webSeedProviderURL.EscapedPath())
+ d.logger.Debug("[snapshots.webseed] get from HTTP provider", "err", err, "url", webSeedProviderURL.EscapedPath())
+ continue
+ }
+ list = append(list, response)
+ }
+ for _, webSeedProviderURL := range s3Providers {
+ select {
+ case <-ctx.Done():
+ break
+ default:
+ }
+ response, err := d.callS3Provider(ctx, webSeedProviderURL)
+ if err != nil { // don't fail on error
+ d.logger.Debug("[snapshots.webseed] get from S3 provider", "err", err)
continue
}
list = append(list, response)
@@ -59,13 +71,9 @@ func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, provide
for _, webSeedFile := range diskProviders {
response, err := d.readWebSeedsFile(webSeedFile)
if err != nil { // don't fail on error
- _, fileName := filepath.Split(webSeedFile)
- d.logger.Debug("[snapshots] downloadWebseedTomlFromProviders", "err", err, "file", fileName)
+ d.logger.Debug("[snapshots.webseed] get from File provider", "err", err)
continue
}
- if len(diskProviders) > 0 {
- d.logger.Log(d.verbosity, "[snapshots] see webseed.toml file", "files", webSeedFile)
- }
list = append(list, response)
}
@@ -91,59 +99,6 @@ func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, provide
d.torrentUrls = torrentUrls
}
-// downloadTorrentFilesFromProviders - if they are not exist on file-system
-func (d *WebSeeds) downloadTorrentFilesFromProviders(ctx context.Context, rootDir string) {
- // TODO: need more tests, need handle more forward-compatibility and backward-compatibility case
- // - now, if add new type of .torrent files to S3 bucket - existing nodes will start downloading it. maybe need whitelist of file types
- // - maybe need download new files if --snap.stop=true
- if !d.downloadTorrentFile {
- return
- }
- if len(d.TorrentUrls()) == 0 {
- return
- }
- var addedNew int
- e, ctx := errgroup.WithContext(ctx)
- urlsByName := d.TorrentUrls()
- //TODO:
- // - what to do if node already synced?
- for name, tUrls := range urlsByName {
- tPath := filepath.Join(rootDir, name)
- if dir.FileExist(tPath) {
- continue
- }
- addedNew++
- if strings.HasSuffix(name, ".v.torrent") || strings.HasSuffix(name, ".ef.torrent") {
- _, fName := filepath.Split(name)
- if strings.HasPrefix(fName, "commitment") {
- d.logger.Log(d.verbosity, "[snapshots] webseed has .torrent, but we skip it because we don't support it yet", "name", name)
- continue
- }
- }
- name := name
- tUrls := tUrls
- e.Go(func() error {
- for _, url := range tUrls {
- res, err := d.callTorrentUrlProvider(ctx, url)
- if err != nil {
- d.logger.Debug("[snapshots] callTorrentUrlProvider", "err", err)
- continue
- }
- d.logger.Log(d.verbosity, "[snapshots] downloaded .torrent file from webseed", "name", name)
- if err := saveTorrent(tPath, res); err != nil {
- d.logger.Debug("[snapshots] saveTorrent", "err", err)
- continue
- }
- return nil
- }
- return nil
- })
- }
- if err := e.Wait(); err != nil {
- d.logger.Debug("[snapshots] webseed discover", "err", err)
- }
-}
-
func (d *WebSeeds) TorrentUrls() snaptype.TorrentUrls {
d.lock.Lock()
defer d.lock.Unlock()
@@ -162,7 +117,7 @@ func (d *WebSeeds) ByFileName(name string) (metainfo.UrlList, bool) {
v, ok := d.byFileName[name]
return v, ok
}
-func (d *WebSeeds) callWebSeedsProvider(ctx context.Context, webSeedProviderUrl *url.URL) (snaptype.WebSeedsFromProvider, error) {
+func (d *WebSeeds) callHttpProvider(ctx context.Context, webSeedProviderUrl *url.URL) (snaptype.WebSeedsFromProvider, error) {
request, err := http.NewRequest(http.MethodGet, webSeedProviderUrl.String(), nil)
if err != nil {
return nil, err
@@ -170,54 +125,73 @@ func (d *WebSeeds) callWebSeedsProvider(ctx context.Context, webSeedProviderUrl
request = request.WithContext(ctx)
resp, err := http.DefaultClient.Do(request)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("webseed.http: host=%s, url=%s, %w", webSeedProviderUrl.Hostname(), webSeedProviderUrl.EscapedPath(), err)
}
defer resp.Body.Close()
response := snaptype.WebSeedsFromProvider{}
if err := toml.NewDecoder(resp.Body).Decode(&response); err != nil {
- return nil, err
+ return nil, fmt.Errorf("webseed.http: host=%s, url=%s, %w", webSeedProviderUrl.Hostname(), webSeedProviderUrl.EscapedPath(), err)
}
+ d.logger.Debug("[snapshots.webseed] get from HTTP provider", "urls", len(response), "host", webSeedProviderUrl.Hostname(), "url", webSeedProviderUrl.EscapedPath())
return response, nil
}
-func (d *WebSeeds) callTorrentUrlProvider(ctx context.Context, url *url.URL) ([]byte, error) {
- request, err := http.NewRequest(http.MethodGet, url.String(), nil)
- if err != nil {
- return nil, err
+func (d *WebSeeds) callS3Provider(ctx context.Context, token string) (snaptype.WebSeedsFromProvider, error) {
+ //v1:bucketName:accID:accessKeyID:accessKeySecret
+ l := strings.Split(token, ":")
+ if len(l) != 5 {
+ return nil, fmt.Errorf("token has invalid format, exepcing 'v1:tokenInBase64'")
}
- request = request.WithContext(ctx)
- resp, err := http.DefaultClient.Do(request)
- if err != nil {
- return nil, err
+ version, bucketName, accountId, accessKeyId, accessKeySecret := strings.TrimSpace(l[0]), strings.TrimSpace(l[1]), strings.TrimSpace(l[2]), strings.TrimSpace(l[3]), strings.TrimSpace(l[4])
+ if version != "v1" {
+ return nil, fmt.Errorf("not supported version: %s", version)
}
- defer resp.Body.Close()
- //protect against too small and too big data
- if resp.ContentLength == 0 || resp.ContentLength > int64(128*datasize.MB) {
- return nil, nil
- }
- res, err := io.ReadAll(resp.Body)
+ var fileName = "webseeds.toml"
+
+ r2Resolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) {
+ return aws.Endpoint{
+ URL: fmt.Sprintf("https://%s.r2.cloudflarestorage.com", accountId),
+ }, nil
+ })
+ cfg, err := config.LoadDefaultConfig(ctx,
+ config.WithEndpointResolverWithOptions(r2Resolver),
+ config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(accessKeyId, accessKeySecret, "")),
+ )
if err != nil {
return nil, err
}
- if err = validateTorrentBytes(res, url.Path); err != nil {
- return nil, err
+
+ client := s3.NewFromConfig(cfg)
+ // {
+ // "ChecksumAlgorithm": null,
+ // "ETag": "\"eb2b891dc67b81755d2b726d9110af16\"",
+ // "Key": "ferriswasm.png",
+ // "LastModified": "2022-05-18T17:20:21.67Z",
+ // "Owner": null,
+ // "Size": 87671,
+ // "StorageClass": "STANDARD"
+ // }
+ resp, err := client.GetObject(ctx, &s3.GetObjectInput{Bucket: &bucketName, Key: &fileName})
+ if err != nil {
+ return nil, fmt.Errorf("webseed.s3: bucket=%s, %w", bucketName, err)
}
- return res, nil
-}
-func validateTorrentBytes(b []byte, url string) error {
- var mi metainfo.MetaInfo
- if err := bencode.NewDecoder(bytes.NewBuffer(b)).Decode(&mi); err != nil {
- return fmt.Errorf("invalid bytes received from url %s, err=%w", url, err)
+ defer resp.Body.Close()
+ response := snaptype.WebSeedsFromProvider{}
+ if err := toml.NewDecoder(resp.Body).Decode(&response); err != nil {
+ return nil, fmt.Errorf("webseed.s3: bucket=%s, %w", bucketName, err)
}
- return nil
+ d.logger.Debug("[snapshots.webseed] get from S3 provider", "urls", len(response), "bucket", bucketName)
+ return response, nil
}
func (d *WebSeeds) readWebSeedsFile(webSeedProviderPath string) (snaptype.WebSeedsFromProvider, error) {
+ _, fileName := filepath.Split(webSeedProviderPath)
data, err := os.ReadFile(webSeedProviderPath)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("webseed.readWebSeedsFile: file=%s, %w", fileName, err)
}
response := snaptype.WebSeedsFromProvider{}
if err := toml.Unmarshal(data, &response); err != nil {
- return nil, err
+ return nil, fmt.Errorf("webseed.readWebSeedsFile: file=%s, %w", fileName, err)
}
+ d.logger.Debug("[snapshots.webseed] get from File provider", "urls", len(response), "file", fileName)
return response, nil
}
diff --git a/erigon-lib/etl/buffers.go b/erigon-lib/etl/buffers.go
index 5d0c2e4e761..a05f1614c08 100644
--- a/erigon-lib/etl/buffers.go
+++ b/erigon-lib/etl/buffers.go
@@ -36,6 +36,7 @@ const (
// SortableOldestAppearedBuffer - buffer that keeps only the oldest entries.
// if first v1 was added under key K, then v2; only v1 will stay
SortableOldestAppearedBuffer
+ SortableMergeBuffer
//BufIOSize - 128 pages | default is 1 page | increasing over `64 * 4096` doesn't show speedup on SSD/NVMe, but show speedup in cloud drives
BufIOSize = 128 * 4096
@@ -211,8 +212,8 @@ func (b *appendSortableBuffer) Put(k, v []byte) {
b.size += len(k)
}
b.size += len(v)
- stored = append(stored, v...)
- b.entries[string(k)] = stored
+ fmt.Printf("put: %d, %x, %x . %x\n", b.size, k, stored, v)
+ b.entries[string(k)] = append(stored, v...)
}
func (b *appendSortableBuffer) Size() int { return b.size }
@@ -222,8 +223,8 @@ func (b *appendSortableBuffer) Len() int {
return len(b.entries)
}
func (b *appendSortableBuffer) Sort() {
- for i := range b.entries {
- b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(i), value: b.entries[i]})
+ for key, val := range b.entries {
+ b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(key), value: val})
}
sort.Stable(b)
}
@@ -255,6 +256,7 @@ func (b *appendSortableBuffer) Write(w io.Writer) error {
var numBuf [binary.MaxVarintLen64]byte
entries := b.sortedBuf
for _, entry := range entries {
+ fmt.Printf("write: %x, %x\n", entry.key, entry.value)
lk := int64(len(entry.key))
if entry.key == nil {
lk = -1
@@ -266,7 +268,7 @@ func (b *appendSortableBuffer) Write(w io.Writer) error {
if _, err := w.Write(entry.key); err != nil {
return err
}
- lv := int64(len(entry.key))
+ lv := int64(len(entry.value))
if entry.value == nil {
lv = -1
}
@@ -381,7 +383,7 @@ func (b *oldestEntrySortableBuffer) CheckFlushSize() bool {
return b.size >= b.optimalSize
}
-func getBufferByType(tp int, size datasize.ByteSize) Buffer {
+func getBufferByType(tp int, size datasize.ByteSize, prevBuf Buffer) Buffer {
switch tp {
case SortableSliceBuffer:
return NewSortableBuffer(size)
@@ -389,6 +391,8 @@ func getBufferByType(tp int, size datasize.ByteSize) Buffer {
return NewAppendBuffer(size)
case SortableOldestAppearedBuffer:
return NewOldestEntryBuffer(size)
+ case SortableMergeBuffer:
+ return NewLatestMergedEntryMergedBuffer(size, prevBuf.(*oldestMergedEntrySortableBuffer).merge)
default:
panic("unknown buffer type " + strconv.Itoa(tp))
}
@@ -402,7 +406,112 @@ func getTypeByBuffer(b Buffer) int {
return SortableAppendBuffer
case *oldestEntrySortableBuffer:
return SortableOldestAppearedBuffer
+ case *oldestMergedEntrySortableBuffer:
+ return SortableMergeBuffer
default:
panic(fmt.Sprintf("unknown buffer type: %T ", b))
}
}
+
+func NewLatestMergedEntryMergedBuffer(bufferOptimalSize datasize.ByteSize, merger func([]byte, []byte) []byte) *oldestMergedEntrySortableBuffer {
+ if merger == nil {
+ panic("nil merge func")
+ }
+ return &oldestMergedEntrySortableBuffer{
+ entries: make(map[string][]byte),
+ size: 0,
+ merge: merger,
+ optimalSize: int(bufferOptimalSize.Bytes()),
+ }
+}
+
+type oldestMergedEntrySortableBuffer struct {
+ entries map[string][]byte
+ merge func([]byte, []byte) []byte
+ sortedBuf []sortableBufferEntry
+ size int
+ optimalSize int
+}
+
+func (b *oldestMergedEntrySortableBuffer) Put(k, v []byte) {
+ prev, ok := b.entries[string(k)]
+ if ok {
+ b.size -= len(v)
+ // if we already had this entry, we are going to keep it and ignore new value
+ v = b.merge(prev, v)
+ b.size += len(v)
+ } else {
+ b.size += len(k) + len(v)
+ }
+ b.entries[string(k)] = common.Copy(v)
+}
+
+func (b *oldestMergedEntrySortableBuffer) Size() int { return b.size }
+func (b *oldestMergedEntrySortableBuffer) SizeLimit() int { return b.optimalSize }
+
+func (b *oldestMergedEntrySortableBuffer) Len() int {
+ return len(b.entries)
+}
+
+func (b *oldestMergedEntrySortableBuffer) Sort() {
+ for k, v := range b.entries {
+ b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(k), value: v})
+ }
+ sort.Stable(b)
+}
+
+func (b *oldestMergedEntrySortableBuffer) Less(i, j int) bool {
+ return bytes.Compare(b.sortedBuf[i].key, b.sortedBuf[j].key) < 0
+}
+
+func (b *oldestMergedEntrySortableBuffer) Swap(i, j int) {
+ b.sortedBuf[i], b.sortedBuf[j] = b.sortedBuf[j], b.sortedBuf[i]
+}
+
+func (b *oldestMergedEntrySortableBuffer) Get(i int, keyBuf, valBuf []byte) ([]byte, []byte) {
+ keyBuf = append(keyBuf, b.sortedBuf[i].key...)
+ valBuf = append(valBuf, b.sortedBuf[i].value...)
+ return keyBuf, valBuf
+}
+func (b *oldestMergedEntrySortableBuffer) Reset() {
+ b.sortedBuf = nil
+ b.entries = make(map[string][]byte)
+ b.size = 0
+}
+func (b *oldestMergedEntrySortableBuffer) Prealloc(predictKeysAmount, predictDataSize int) {
+ b.entries = make(map[string][]byte, predictKeysAmount)
+ b.sortedBuf = make([]sortableBufferEntry, 0, predictKeysAmount*2)
+}
+
+func (b *oldestMergedEntrySortableBuffer) Write(w io.Writer) error {
+ var numBuf [binary.MaxVarintLen64]byte
+ entries := b.sortedBuf
+ for _, entry := range entries {
+ lk := int64(len(entry.key))
+ if entry.key == nil {
+ lk = -1
+ }
+ n := binary.PutVarint(numBuf[:], lk)
+ if _, err := w.Write(numBuf[:n]); err != nil {
+ return err
+ }
+ if _, err := w.Write(entry.key); err != nil {
+ return err
+ }
+ lv := int64(len(entry.value))
+ if entry.value == nil {
+ lv = -1
+ }
+ n = binary.PutVarint(numBuf[:], lv)
+ if _, err := w.Write(numBuf[:n]); err != nil {
+ return err
+ }
+ if _, err := w.Write(entry.value); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+func (b *oldestMergedEntrySortableBuffer) CheckFlushSize() bool {
+ return b.size >= b.optimalSize
+}
diff --git a/erigon-lib/etl/collector.go b/erigon-lib/etl/collector.go
index d72ddecd0c4..4a77ba2d368 100644
--- a/erigon-lib/etl/collector.go
+++ b/erigon-lib/etl/collector.go
@@ -117,7 +117,7 @@ func (c *Collector) flushBuffer(canStoreInRam bool) error {
} else {
fullBuf := c.buf
prevLen, prevSize := fullBuf.Len(), fullBuf.SizeLimit()
- c.buf = getBufferByType(c.bufType, datasize.ByteSize(c.buf.SizeLimit()))
+ c.buf = getBufferByType(c.bufType, datasize.ByteSize(c.buf.SizeLimit()), c.buf)
doFsync := !c.autoClean /* is critical collector */
var err error
@@ -149,6 +149,7 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr
if c.autoClean {
defer c.Close()
}
+ args.BufferType = c.bufType
if !c.allFlushed {
if e := c.flushBuffer(true); e != nil {
@@ -181,7 +182,6 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr
defer logEvery.Stop()
i := 0
- var prevK []byte
loadNextFunc := func(_, k, v []byte) error {
if i == 0 {
isEndOfBucket := lastKey == nil || bytes.Compare(lastKey, k) == -1
@@ -189,18 +189,6 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr
}
i++
- // SortableOldestAppearedBuffer must guarantee that only 1 oldest value of key will appear
- // but because size of buffer is limited - each flushed file does guarantee "oldest appeared"
- // property, but files may overlap. files are sorted, just skip repeated keys here
- if c.bufType == SortableOldestAppearedBuffer {
- if bytes.Equal(prevK, k) {
- return nil
- } else {
- // Need to copy k because the underlying space will be re-used for the next key
- prevK = common.Copy(k)
- }
- }
-
select {
default:
case <-logEvery.C:
@@ -249,7 +237,7 @@ func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args Tr
simpleLoad := func(k, v []byte) error {
return loadFunc(k, v, currentTable, loadNextFunc)
}
- if err := mergeSortFiles(c.logPrefix, c.dataProviders, simpleLoad, args); err != nil {
+ if err := mergeSortFiles(c.logPrefix, c.dataProviders, simpleLoad, args, c.buf); err != nil {
return fmt.Errorf("loadIntoTable %s: %w", toBucket, err)
}
//logger.Trace(fmt.Sprintf("[%s] ETL Load done", c.logPrefix), "bucket", bucket, "records", i)
@@ -278,7 +266,7 @@ func (c *Collector) Close() {
// for the next item, which is then added back to the heap.
// The subsequent iterations pop the heap again and load up the provider associated with it to get the next element after processing LoadFunc.
// this continues until all providers have reached their EOF.
-func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleLoadFunc, args TransformArgs) error {
+func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleLoadFunc, args TransformArgs, buf Buffer) (err error) {
for _, provider := range providers {
if err := provider.Wait(); err != nil {
return err
@@ -297,6 +285,8 @@ func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleL
}
}
+ var prevK, prevV []byte
+
// Main loading loop
for h.Len() > 0 {
if err := common.Stopped(args.Quit); err != nil {
@@ -305,16 +295,65 @@ func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleL
element := heapPop(h)
provider := providers[element.TimeIdx]
- err := loadFunc(element.Key, element.Value)
- if err != nil {
- return err
+
+ // SortableOldestAppearedBuffer must guarantee that only 1 oldest value of key will appear
+ // but because size of buffer is limited - each flushed file does guarantee "oldest appeared"
+ // property, but files may overlap. files are sorted, just skip repeated keys here
+ if args.BufferType == SortableOldestAppearedBuffer {
+ if !bytes.Equal(prevK, element.Key) {
+ if err = loadFunc(element.Key, element.Value); err != nil {
+ return err
+ }
+ // Need to copy k because the underlying space will be re-used for the next key
+ prevK = common.Copy(element.Key)
+ }
+ } else if args.BufferType == SortableAppendBuffer {
+ if !bytes.Equal(prevK, element.Key) {
+ if prevK != nil {
+ if err = loadFunc(prevK, prevV); err != nil {
+ return err
+ }
+ }
+ // Need to copy k because the underlying space will be re-used for the next key
+ prevK = common.Copy(element.Key)
+ prevV = common.Copy(element.Value)
+ } else {
+ prevV = append(prevV, element.Value...)
+ }
+ } else if args.BufferType == SortableMergeBuffer {
+ if !bytes.Equal(prevK, element.Key) {
+ if prevK != nil {
+ if err = loadFunc(prevK, prevV); err != nil {
+ return err
+ }
+ }
+ // Need to copy k because the underlying space will be re-used for the next key
+ prevK = common.Copy(element.Key)
+ prevV = common.Copy(element.Value)
+ } else {
+ prevV = buf.(*oldestMergedEntrySortableBuffer).merge(prevV, element.Value)
+ }
+ } else {
+ if err = loadFunc(element.Key, element.Value); err != nil {
+ return err
+ }
}
+
if element.Key, element.Value, err = provider.Next(element.Key[:0], element.Value[:0]); err == nil {
heapPush(h, element)
} else if !errors.Is(err, io.EOF) {
return fmt.Errorf("%s: error while reading next element from disk: %w", logPrefix, err)
}
}
+
+ if args.BufferType == SortableAppendBuffer {
+ if prevK != nil {
+ if err = loadFunc(prevK, prevV); err != nil {
+ return err
+ }
+ }
+ }
+
return nil
}
diff --git a/erigon-lib/etl/dataprovider.go b/erigon-lib/etl/dataprovider.go
index a142f37f8c5..25387da38f1 100644
--- a/erigon-lib/etl/dataprovider.go
+++ b/erigon-lib/etl/dataprovider.go
@@ -22,6 +22,7 @@ import (
"fmt"
"io"
"os"
+ "path/filepath"
"github.com/ledgerwatch/log/v3"
"golang.org/x/sync/errgroup"
@@ -71,10 +72,11 @@ func FlushToDisk(logPrefix string, b Buffer, tmpdir string, doFsync bool, lvl lo
w := bufio.NewWriterSize(bufferFile, BufIOSize)
defer w.Flush() //nolint:errcheck
+ _, fName := filepath.Split(bufferFile.Name())
if err = b.Write(w); err != nil {
return fmt.Errorf("error writing entries to disk: %w", err)
}
- log.Log(lvl, fmt.Sprintf("[%s] Flushed buffer file", logPrefix), "name", bufferFile.Name())
+ log.Log(lvl, fmt.Sprintf("[%s] Flushed buffer file", logPrefix), "name", fName)
return nil
})
diff --git a/erigon-lib/etl/etl.go b/erigon-lib/etl/etl.go
index 942e115cb1e..9bac4418501 100644
--- a/erigon-lib/etl/etl.go
+++ b/erigon-lib/etl/etl.go
@@ -88,7 +88,7 @@ func Transform(
if args.BufferSize > 0 {
bufferSize = datasize.ByteSize(args.BufferSize)
}
- buffer := getBufferByType(args.BufferType, bufferSize)
+ buffer := getBufferByType(args.BufferType, bufferSize, nil)
collector := NewCollector(logPrefix, tmpdir, buffer, logger)
defer collector.Close()
diff --git a/erigon-lib/etl/etl_test.go b/erigon-lib/etl/etl_test.go
index 18ab3dc48e8..81b257df4b3 100644
--- a/erigon-lib/etl/etl_test.go
+++ b/erigon-lib/etl/etl_test.go
@@ -84,6 +84,23 @@ func TestEmptyValueIsNotANil(t *testing.T) {
return nil
}, TransformArgs{}))
})
+ t.Run("merge", func(t *testing.T) {
+ collector := NewCollector(t.Name(), "", NewLatestMergedEntryMergedBuffer(1, func(v1 []byte, v2 []byte) []byte {
+ return append(v1, v2...)
+ }), logger)
+ defer collector.Close()
+ require := require.New(t)
+ require.NoError(collector.Collect([]byte{1}, []byte{}))
+ require.NoError(collector.Collect([]byte{2}, nil))
+ require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error {
+ if k[0] == 1 {
+ require.Equal([]byte{}, v)
+ } else {
+ require.Nil(v)
+ }
+ return nil
+ }, TransformArgs{}))
+ })
}
func TestEmptyKeyValue(t *testing.T) {
@@ -513,3 +530,118 @@ func TestReuseCollectorAfterLoad(t *testing.T) {
require.NoError(t, err)
require.Equal(t, 1, see)
}
+
+func TestMerge(t *testing.T) {
+ collector := NewCollector(t.Name(), "", NewLatestMergedEntryMergedBuffer(4, func(v1 []byte, v2 []byte) []byte {
+ return append(v1, v2...)
+ }), log.New())
+ defer collector.Close()
+ require := require.New(t)
+ require.NoError(collector.Collect([]byte{1}, []byte{1}))
+ require.NoError(collector.Collect([]byte{1}, []byte{2}))
+ require.NoError(collector.Collect([]byte{1}, []byte{3}))
+ require.NoError(collector.Collect([]byte{1}, []byte{4}))
+ require.NoError(collector.Collect([]byte{1}, []byte{5}))
+ require.NoError(collector.Collect([]byte{1}, []byte{6}))
+ require.NoError(collector.Collect([]byte{1}, []byte{7}))
+ require.NoError(collector.Collect([]byte{2}, []byte{10}))
+ require.NoError(collector.Collect([]byte{2}, []byte{20}))
+ require.NoError(collector.Collect([]byte{2}, []byte{30}))
+ require.NoError(collector.Collect([]byte{2}, []byte{40}))
+ require.NoError(collector.Collect([]byte{2}, []byte{50}))
+ require.NoError(collector.Collect([]byte{2}, []byte{}))
+ require.NoError(collector.Collect([]byte{2}, nil))
+ require.NoError(collector.Collect([]byte{3}, nil))
+ require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error {
+ if k[0] == 1 {
+ require.Equal([]byte{1, 2, 3, 4, 5, 6, 7}, v)
+ } else if k[0] == 2 {
+ require.Equal([]byte{10, 20, 30, 40, 50}, v)
+ } else {
+ require.Nil(v)
+ }
+ return nil
+ }, TransformArgs{}))
+}
+
+func TestAppend(t *testing.T) {
+ // append buffer doesn't support nil values
+ collector := NewCollector(t.Name(), "", NewAppendBuffer(4), log.New())
+ defer collector.Close()
+ require := require.New(t)
+ require.NoError(collector.Collect([]byte{1}, []byte{1}))
+ require.NoError(collector.Collect([]byte{1}, []byte{2}))
+ require.NoError(collector.Collect([]byte{1}, []byte{3}))
+ require.NoError(collector.Collect([]byte{1}, []byte{4}))
+ require.NoError(collector.Collect([]byte{1}, []byte{5}))
+ require.NoError(collector.Collect([]byte{1}, []byte{6}))
+ require.NoError(collector.Collect([]byte{1}, []byte{7}))
+ require.NoError(collector.Collect([]byte{2}, []byte{10}))
+ require.NoError(collector.Collect([]byte{2}, []byte{20}))
+ require.NoError(collector.Collect([]byte{2}, []byte{30}))
+ require.NoError(collector.Collect([]byte{2}, []byte{40}))
+ require.NoError(collector.Collect([]byte{2}, []byte{50}))
+ require.NoError(collector.Collect([]byte{2}, []byte{}))
+ require.NoError(collector.Collect([]byte{2}, nil))
+ require.NoError(collector.Collect([]byte{3}, nil))
+ require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error {
+ fmt.Printf("%x %x\n", k, v)
+ if k[0] == 1 {
+ require.Equal([]byte{1, 2, 3, 4, 5, 6, 7}, v)
+ } else if k[0] == 2 {
+ require.Equal([]byte{10, 20, 30, 40, 50}, v)
+ } else {
+ require.Nil(v)
+ }
+ return nil
+ }, TransformArgs{}))
+}
+
+func TestOldest(t *testing.T) {
+ collector := NewCollector(t.Name(), "", NewOldestEntryBuffer(1), log.New())
+ defer collector.Close()
+ require := require.New(t)
+ require.NoError(collector.Collect([]byte{1}, []byte{1}))
+ require.NoError(collector.Collect([]byte{1}, []byte{2}))
+ require.NoError(collector.Collect([]byte{1}, []byte{3}))
+ require.NoError(collector.Collect([]byte{1}, []byte{4}))
+ require.NoError(collector.Collect([]byte{1}, []byte{5}))
+ require.NoError(collector.Collect([]byte{1}, []byte{6}))
+ require.NoError(collector.Collect([]byte{1}, []byte{7}))
+ require.NoError(collector.Collect([]byte{2}, nil))
+ require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error {
+ if k[0] == 1 {
+ require.Equal([]byte{1}, v)
+ } else {
+ require.Nil(v)
+ }
+ return nil
+ }, TransformArgs{}))
+}
+
+func TestSortable(t *testing.T) {
+ collector := NewCollector(t.Name(), "", NewSortableBuffer(1), log.New())
+ defer collector.Close()
+ require := require.New(t)
+ require.NoError(collector.Collect([]byte{1}, []byte{1}))
+ require.NoError(collector.Collect([]byte{1}, []byte{2}))
+ require.NoError(collector.Collect([]byte{1}, []byte{3}))
+ require.NoError(collector.Collect([]byte{1}, []byte{4}))
+ require.NoError(collector.Collect([]byte{1}, []byte{5}))
+ require.NoError(collector.Collect([]byte{1}, []byte{6}))
+ require.NoError(collector.Collect([]byte{1}, []byte{7}))
+ require.NoError(collector.Collect([]byte{2}, []byte{1}))
+ require.NoError(collector.Collect([]byte{2}, []byte{20}))
+ require.NoError(collector.Collect([]byte{2}, nil))
+
+ keys, vals := [][]byte{}, [][]byte{}
+ require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error {
+ keys = append(keys, k)
+ vals = append(vals, v)
+ return nil
+ }, TransformArgs{}))
+
+ require.Equal([][]byte{{1}, {1}, {1}, {1}, {1}, {1}, {1}, {2}, {2}, {2}}, keys)
+ require.Equal([][]byte{{1}, {2}, {3}, {4}, {5}, {6}, {7}, {1}, {20}, nil}, vals)
+
+}
diff --git a/erigon-lib/go.mod b/erigon-lib/go.mod
index 3cb99621a0f..21986c37eee 100644
--- a/erigon-lib/go.mod
+++ b/erigon-lib/go.mod
@@ -1,10 +1,11 @@
module github.com/ledgerwatch/erigon-lib
-go 1.19
+go 1.20
require (
- github.com/erigontech/mdbx-go v0.27.17
- github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0
+ github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed
+ github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46
+ github.com/ledgerwatch/interfaces v0.0.0-20231031050643-c86352e41520
github.com/ledgerwatch/log/v3 v3.9.0
github.com/ledgerwatch/secp256k1 v1.0.0
)
@@ -16,8 +17,13 @@ require (
github.com/anacrolix/go-libutp v1.3.1
github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4
github.com/anacrolix/torrent v1.52.6-0.20230926121951-11833b45cfbe
+ github.com/aws/aws-sdk-go-v2 v1.21.2
+ github.com/aws/aws-sdk-go-v2/config v1.19.0
+ github.com/aws/aws-sdk-go-v2/credentials v1.13.43
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2
github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b
- github.com/crate-crypto/go-kzg-4844 v0.3.0
+ github.com/containerd/cgroups/v3 v3.0.2
+ github.com/crate-crypto/go-kzg-4844 v0.7.0
github.com/deckarep/golang-set/v2 v2.3.1
github.com/edsrzf/mmap-go v1.1.0
github.com/go-stack/stack v1.8.1
@@ -26,9 +32,12 @@ require (
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
github.com/hashicorp/golang-lru/v2 v2.0.6
github.com/holiman/uint256 v1.2.3
- github.com/matryer/moq v0.3.2
+ github.com/matryer/moq v0.3.3
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
github.com/pelletier/go-toml/v2 v2.1.0
+ github.com/prometheus/client_golang v1.17.0
+ github.com/prometheus/client_model v0.5.0
+ github.com/prometheus/common v0.44.0
github.com/quasilyte/go-ruleguard/dsl v0.3.22
github.com/spaolacci/murmur3 v1.1.0
github.com/stretchr/testify v1.8.4
@@ -38,7 +47,7 @@ require (
golang.org/x/sync v0.4.0
golang.org/x/sys v0.13.0
golang.org/x/time v0.3.0
- google.golang.org/grpc v1.58.3
+ google.golang.org/grpc v1.59.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0
google.golang.org/protobuf v1.31.0
)
@@ -58,26 +67,48 @@ require (
github.com/anacrolix/sync v0.4.0 // indirect
github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect
github.com/anacrolix/utp v0.1.0 // indirect
+ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 // indirect
+ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect
+ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect
+ github.com/aws/smithy-go v1.15.0 // indirect
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect
+ github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.7.0 // indirect
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
+ github.com/cespare/xxhash/v2 v2.2.0 // indirect
+ github.com/cilium/ebpf v0.9.1 // indirect
github.com/consensys/bavard v0.1.13 // indirect
github.com/consensys/gnark-crypto v0.12.0 // indirect
+ github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/docker/go-units v0.4.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23 // indirect
github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c // indirect
github.com/go-logr/logr v1.2.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
+ github.com/godbus/dbus/v5 v5.0.4 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/uuid v1.3.1 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/huandu/xstrings v1.4.0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
+ github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mmcloughlin/addchain v0.4.0 // indirect
github.com/mschoch/smat v0.2.0 // indirect
+ github.com/opencontainers/runtime-spec v1.0.2 // indirect
github.com/pion/datachannel v1.5.2 // indirect
github.com/pion/dtls/v2 v2.2.4 // indirect
github.com/pion/ice/v2 v2.2.6 // indirect
@@ -98,8 +129,10 @@ require (
github.com/pion/webrtc/v3 v3.1.42 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
+ github.com/prometheus/procfs v0.11.1 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
+ github.com/sirupsen/logrus v1.9.0 // indirect
github.com/valyala/fastrand v1.1.0 // indirect
github.com/valyala/histogram v1.2.0 // indirect
go.etcd.io/bbolt v1.3.6 // indirect
@@ -109,7 +142,7 @@ require (
golang.org/x/net v0.17.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/tools v0.14.0 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
modernc.org/libc v1.24.1 // indirect
modernc.org/mathutil v1.6.0 // indirect
@@ -118,3 +151,5 @@ require (
rsc.io/tmplfunc v0.0.3 // indirect
zombiezen.com/go/sqlite v0.13.1 // indirect
)
+
+replace github.com/VictoriaMetrics/metrics => github.com/ledgerwatch/victoria-metrics v0.0.4
diff --git a/erigon-lib/go.sum b/erigon-lib/go.sum
index 66779c0bcaf..03c789a7c1c 100644
--- a/erigon-lib/go.sum
+++ b/erigon-lib/go.sum
@@ -12,8 +12,6 @@ github.com/RoaringBitmap/roaring v1.2.3 h1:yqreLINqIrX22ErkKI0vY47/ivtJr6n+kMhVO
github.com/RoaringBitmap/roaring v1.2.3/go.mod h1:plvDsJQpxOC5bw8LRteu/MLWHsHez/3y6cubLI4/1yE=
github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
-github.com/VictoriaMetrics/metrics v1.23.1 h1:/j8DzeJBxSpL2qSIdqnRFLvQQhbJyJbbEi22yMm7oL0=
-github.com/VictoriaMetrics/metrics v1.23.1/go.mod h1:rAr/llLpEnAdTehiNlUxKgnjcOuROSzpw0GvjpEbvFc=
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 h1:byYvvbfSo3+9efR4IeReh77gVs4PnNDR3AMOE9NJ7a0=
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0/go.mod h1:q37NoqncT41qKc048STsifIt69LfUJ8SrWWcz/yam5k=
github.com/alecthomas/assert/v2 v2.0.0-alpha3 h1:pcHeMvQ3OMstAWgaeaXIAL8uzB9xMm2zlxt+/4ml8lk=
@@ -80,6 +78,42 @@ github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cY
github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4=
github.com/anacrolix/utp v0.1.0/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA=
+github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 h1:Sc82v7tDQ/vdU1WtuSyzZ1I7y/68j//HJ6uozND1IDs=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY=
+github.com/aws/aws-sdk-go-v2/config v1.19.0 h1:AdzDvwH6dWuVARCl3RTLGRc4Ogy+N7yLFxVxXe1ClQ0=
+github.com/aws/aws-sdk-go-v2/config v1.19.0/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE=
+github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8=
+github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 h1:wmGLw2i8ZTlHLw7a9ULGfQbuccw8uIiNr6sol5bFzc8=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6/go.mod h1:Q0Hq2X/NuL7z8b1Dww8rmOFl+jzusKEcyvkKspwdpyc=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 h1:7R8uRYyXzdD71KWVCL78lJZltah6VVznXBazvKjfH58=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 h1:skaFGzv+3kA+v2BPKhuekeb1Hbb105+44r8ASC+q5SE=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38/go.mod h1:epIZoRSSbRIwLPJU5F+OldHhwZPBdpDeQkRdCeY3+00=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 h1:9ulSU5ClouoPIYhDQdg9tpl83d5Yb91PXTKK+17q+ow=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6/go.mod h1:lnc2taBsR9nTlz9meD+lhFZZ9EWY712QHrRflWpTcOA=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 h1:Ll5/YVCOzRB+gxPqs2uD0R7/MyATC0w85626glSKmp4=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ=
+github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k=
+github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg=
+github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU=
+github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ=
+github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8=
+github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@@ -88,6 +122,7 @@ github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d h1:2qVb9bs
github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d/go.mod h1:iAr8OjJGLnLmVUr9MZ/rz4PWUy6Ouc2JLYuMArmvAJM=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
github.com/bits-and-blooms/bitset v1.7.0 h1:YjAGVd3XmtK9ktAbX8Zg2g2PwLIMjGREZJHlV4j7NEo=
@@ -100,20 +135,30 @@ github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b h1:6+ZFm0flnudZzdS
github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
+github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4=
+github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ=
github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI=
github.com/consensys/gnark-crypto v0.12.0 h1:1OnSpOykNkUIBIBJKdhwy2p0JlW5o+Az02ICzZmvvdg=
github.com/consensys/gnark-crypto v0.12.0/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY=
-github.com/crate-crypto/go-kzg-4844 v0.3.0 h1:UBlWE0CgyFqqzTI+IFyCzA7A3Zw4iip6uzRv5NIXG0A=
-github.com/crate-crypto/go-kzg-4844 v0.3.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4=
+github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0=
+github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE=
+github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
+github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA=
+github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deckarep/golang-set/v2 v2.3.1 h1:vjmkvJt/IV27WXPyYQpAh4bRyWJc5Y435D17XQ9QU5A=
github.com/deckarep/golang-set/v2 v2.3.1/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
+github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
+github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
@@ -128,8 +173,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/erigontech/mdbx-go v0.27.17 h1:+LOuGmdrD74psBVHDaS3cFXzI9tTSfLcUvOUtMwX2Ok=
-github.com/erigontech/mdbx-go v0.27.17/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4=
+github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed h1:i1xZSrLxifCa0nabPeTxma9/3hqPSRmvqwWqad8rLVM=
+github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4=
github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
@@ -159,6 +204,8 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw=
github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
+github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
@@ -193,6 +240,7 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
@@ -223,6 +271,8 @@ github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq
github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU=
github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
+github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
@@ -241,20 +291,26 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c=
-github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0 h1:pCLKf3lanroMo1SpA/idi5RyGOIBwvwVRLNwV0suHQU=
-github.com/ledgerwatch/interfaces v0.0.0-20230929215128-3300a167cce0/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc=
+github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46 h1:yt3/AcefMQOzY/P05jyeaKpqMQvrCbL6OJWALsjKp5U=
+github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo=
+github.com/ledgerwatch/interfaces v0.0.0-20231031050643-c86352e41520 h1:j/PRJWbPrbk8wpVjU77SWS8xJ/N+dcxPs1relNSolUs=
+github.com/ledgerwatch/interfaces v0.0.0-20231031050643-c86352e41520/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc=
github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk=
github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE=
github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ=
github.com/ledgerwatch/secp256k1 v1.0.0/go.mod h1:SPmqJFciiF/Q0mPt2jVs2dTr/1TZBTIA+kPMmKgBAak=
-github.com/matryer/moq v0.3.2 h1:z7oltmpTxiQ9nKNg0Jc7z45TM+eO7OhCVohxRxwaudM=
-github.com/matryer/moq v0.3.2/go.mod h1:RJ75ZZZD71hejp39j4crZLsEDszGk6iH4v4YsWFKH4s=
+github.com/ledgerwatch/victoria-metrics v0.0.4 h1:S9QWU1giEHi4MgZWGRllDlqPKWIm5oZAiDcIITDOM0w=
+github.com/ledgerwatch/victoria-metrics v0.0.4/go.mod h1:sQqXMfpfwYTLQVw/FsaKAwnOp6UhVkmaYSpl9gZ/K6w=
+github.com/matryer/moq v0.3.3 h1:pScMH9VyrdT4S93yiLpVyU8rCDqGQr24uOyBxmktG5Q=
+github.com/matryer/moq v0.3.3/go.mod h1:RJ75ZZZD71hejp39j4crZLsEDszGk6iH4v4YsWFKH4s=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY=
github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU=
github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU=
@@ -277,6 +333,8 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0=
+github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
@@ -339,19 +397,27 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
+github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q=
+github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
+github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
+github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
+github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=
github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
@@ -359,7 +425,7 @@ github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
-github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs=
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA=
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8=
@@ -367,6 +433,8 @@ github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5P
github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
+github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
@@ -414,6 +482,7 @@ go.opentelemetry.io/otel/trace v1.8.0 h1:cSy0DF9eGI5WIfNwZ1q2iUyGj00tGzP24dE1lOl
go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
+go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA=
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -508,6 +577,7 @@ golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -562,8 +632,8 @@ google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRn
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
@@ -571,8 +641,8 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
-google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ=
-google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
+google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
+google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
diff --git a/erigon-lib/gointerfaces/downloader/downloader.pb.go b/erigon-lib/gointerfaces/downloader/downloader.pb.go
index 773282e315b..e7dfe2f04cd 100644
--- a/erigon-lib/gointerfaces/downloader/downloader.pb.go
+++ b/erigon-lib/gointerfaces/downloader/downloader.pb.go
@@ -127,6 +127,54 @@ func (x *DownloadRequest) GetItems() []*DownloadItem {
return nil
}
+// DeleteRequest: stop seeding, delete file, delete .torrent
+type DeleteRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Paths []string `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"`
+}
+
+func (x *DeleteRequest) Reset() {
+ *x = DeleteRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_downloader_downloader_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteRequest) ProtoMessage() {}
+
+func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_downloader_downloader_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
+func (*DeleteRequest) Descriptor() ([]byte, []int) {
+ return file_downloader_downloader_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *DeleteRequest) GetPaths() []string {
+ if x != nil {
+ return x.Paths
+ }
+ return nil
+}
+
type VerifyRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -136,7 +184,7 @@ type VerifyRequest struct {
func (x *VerifyRequest) Reset() {
*x = VerifyRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_downloader_downloader_proto_msgTypes[2]
+ mi := &file_downloader_downloader_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -149,7 +197,7 @@ func (x *VerifyRequest) String() string {
func (*VerifyRequest) ProtoMessage() {}
func (x *VerifyRequest) ProtoReflect() protoreflect.Message {
- mi := &file_downloader_downloader_proto_msgTypes[2]
+ mi := &file_downloader_downloader_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -162,7 +210,7 @@ func (x *VerifyRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead.
func (*VerifyRequest) Descriptor() ([]byte, []int) {
- return file_downloader_downloader_proto_rawDescGZIP(), []int{2}
+ return file_downloader_downloader_proto_rawDescGZIP(), []int{3}
}
type StatsRequest struct {
@@ -174,7 +222,7 @@ type StatsRequest struct {
func (x *StatsRequest) Reset() {
*x = StatsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_downloader_downloader_proto_msgTypes[3]
+ mi := &file_downloader_downloader_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -187,7 +235,7 @@ func (x *StatsRequest) String() string {
func (*StatsRequest) ProtoMessage() {}
func (x *StatsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_downloader_downloader_proto_msgTypes[3]
+ mi := &file_downloader_downloader_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -200,7 +248,7 @@ func (x *StatsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use StatsRequest.ProtoReflect.Descriptor instead.
func (*StatsRequest) Descriptor() ([]byte, []int) {
- return file_downloader_downloader_proto_rawDescGZIP(), []int{3}
+ return file_downloader_downloader_proto_rawDescGZIP(), []int{4}
}
type StatsReply struct {
@@ -228,7 +276,7 @@ type StatsReply struct {
func (x *StatsReply) Reset() {
*x = StatsReply{}
if protoimpl.UnsafeEnabled {
- mi := &file_downloader_downloader_proto_msgTypes[4]
+ mi := &file_downloader_downloader_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -241,7 +289,7 @@ func (x *StatsReply) String() string {
func (*StatsReply) ProtoMessage() {}
func (x *StatsReply) ProtoReflect() protoreflect.Message {
- mi := &file_downloader_downloader_proto_msgTypes[4]
+ mi := &file_downloader_downloader_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -254,7 +302,7 @@ func (x *StatsReply) ProtoReflect() protoreflect.Message {
// Deprecated: Use StatsReply.ProtoReflect.Descriptor instead.
func (*StatsReply) Descriptor() ([]byte, []int) {
- return file_downloader_downloader_proto_rawDescGZIP(), []int{4}
+ return file_downloader_downloader_proto_rawDescGZIP(), []int{5}
}
func (x *StatsReply) GetMetadataReady() int32 {
@@ -345,47 +393,53 @@ var file_downloader_downloader_proto_rawDesc = []byte{
0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x18, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x77,
0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73,
- 0x22, 0x0f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79,
- 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x61,
- 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
- 0x74, 0x61, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73,
- 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69,
- 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72,
- 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
- 0x70, 0x65, 0x65, 0x72, 0x73, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63,
- 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70,
- 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d,
- 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
- 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
- 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70,
- 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x79, 0x74,
- 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62,
- 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04,
- 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b,
- 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a,
- 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b,
- 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61,
- 0x74, 0x65, 0x32, 0xcb, 0x01, 0x0a, 0x0a, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65,
- 0x72, 0x12, 0x41, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1b, 0x2e,
- 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
- 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x19,
- 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x69,
- 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
- 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x64,
+ 0x22, 0x25, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, 0x66,
+ 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61,
+ 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12,
+ 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x73, 0x55, 0x6e, 0x69, 0x71,
+ 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63,
+ 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12,
+ 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a,
+ 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52,
+ 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x79, 0x74,
+ 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01,
+ 0x28, 0x04, 0x52, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
+ 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f,
+ 0x74, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61,
+ 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64,
+ 0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
+ 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x6f, 0x77,
+ 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x32, 0x8a, 0x02, 0x0a, 0x0a, 0x44, 0x6f,
+ 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e,
+ 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1b, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65,
+ 0x72, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
+ 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x56, 0x65,
+ 0x72, 0x69, 0x66, 0x79, 0x12, 0x19, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65,
+ 0x72, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x05, 0x53, 0x74, 0x61,
+ 0x74, 0x73, 0x12, 0x18, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e,
+ 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x64,
0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
- 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00,
- 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72,
- 0x3b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
+ 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x64, 0x6f, 0x77, 0x6e,
+ 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x3b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65,
+ 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -400,27 +454,30 @@ func file_downloader_downloader_proto_rawDescGZIP() []byte {
return file_downloader_downloader_proto_rawDescData
}
-var file_downloader_downloader_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_downloader_downloader_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_downloader_downloader_proto_goTypes = []interface{}{
(*DownloadItem)(nil), // 0: downloader.DownloadItem
(*DownloadRequest)(nil), // 1: downloader.DownloadRequest
- (*VerifyRequest)(nil), // 2: downloader.VerifyRequest
- (*StatsRequest)(nil), // 3: downloader.StatsRequest
- (*StatsReply)(nil), // 4: downloader.StatsReply
- (*types.H160)(nil), // 5: types.H160
- (*emptypb.Empty)(nil), // 6: google.protobuf.Empty
+ (*DeleteRequest)(nil), // 2: downloader.DeleteRequest
+ (*VerifyRequest)(nil), // 3: downloader.VerifyRequest
+ (*StatsRequest)(nil), // 4: downloader.StatsRequest
+ (*StatsReply)(nil), // 5: downloader.StatsReply
+ (*types.H160)(nil), // 6: types.H160
+ (*emptypb.Empty)(nil), // 7: google.protobuf.Empty
}
var file_downloader_downloader_proto_depIdxs = []int32{
- 5, // 0: downloader.DownloadItem.torrent_hash:type_name -> types.H160
+ 6, // 0: downloader.DownloadItem.torrent_hash:type_name -> types.H160
0, // 1: downloader.DownloadRequest.items:type_name -> downloader.DownloadItem
1, // 2: downloader.Downloader.Download:input_type -> downloader.DownloadRequest
- 2, // 3: downloader.Downloader.Verify:input_type -> downloader.VerifyRequest
- 3, // 4: downloader.Downloader.Stats:input_type -> downloader.StatsRequest
- 6, // 5: downloader.Downloader.Download:output_type -> google.protobuf.Empty
- 6, // 6: downloader.Downloader.Verify:output_type -> google.protobuf.Empty
- 4, // 7: downloader.Downloader.Stats:output_type -> downloader.StatsReply
- 5, // [5:8] is the sub-list for method output_type
- 2, // [2:5] is the sub-list for method input_type
+ 2, // 3: downloader.Downloader.Delete:input_type -> downloader.DeleteRequest
+ 3, // 4: downloader.Downloader.Verify:input_type -> downloader.VerifyRequest
+ 4, // 5: downloader.Downloader.Stats:input_type -> downloader.StatsRequest
+ 7, // 6: downloader.Downloader.Download:output_type -> google.protobuf.Empty
+ 7, // 7: downloader.Downloader.Delete:output_type -> google.protobuf.Empty
+ 7, // 8: downloader.Downloader.Verify:output_type -> google.protobuf.Empty
+ 5, // 9: downloader.Downloader.Stats:output_type -> downloader.StatsReply
+ 6, // [6:10] is the sub-list for method output_type
+ 2, // [2:6] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
@@ -457,7 +514,7 @@ func file_downloader_downloader_proto_init() {
}
}
file_downloader_downloader_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*VerifyRequest); i {
+ switch v := v.(*DeleteRequest); i {
case 0:
return &v.state
case 1:
@@ -469,7 +526,7 @@ func file_downloader_downloader_proto_init() {
}
}
file_downloader_downloader_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StatsRequest); i {
+ switch v := v.(*VerifyRequest); i {
case 0:
return &v.state
case 1:
@@ -481,6 +538,18 @@ func file_downloader_downloader_proto_init() {
}
}
file_downloader_downloader_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StatsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_downloader_downloader_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StatsReply); i {
case 0:
return &v.state
@@ -499,7 +568,7 @@ func file_downloader_downloader_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_downloader_downloader_proto_rawDesc,
NumEnums: 0,
- NumMessages: 5,
+ NumMessages: 6,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go b/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go
index 831743bbc71..d4520105f64 100644
--- a/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go
+++ b/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go
@@ -21,6 +21,7 @@ const _ = grpc.SupportPackageIsVersion7
const (
Downloader_Download_FullMethodName = "/downloader.Downloader/Download"
+ Downloader_Delete_FullMethodName = "/downloader.Downloader/Delete"
Downloader_Verify_FullMethodName = "/downloader.Downloader/Verify"
Downloader_Stats_FullMethodName = "/downloader.Downloader/Stats"
)
@@ -30,6 +31,7 @@ const (
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type DownloaderClient interface {
Download(ctx context.Context, in *DownloadRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+ Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsReply, error)
}
@@ -51,6 +53,15 @@ func (c *downloaderClient) Download(ctx context.Context, in *DownloadRequest, op
return out, nil
}
+func (c *downloaderClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+ out := new(emptypb.Empty)
+ err := c.cc.Invoke(ctx, Downloader_Delete_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *downloaderClient) Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, Downloader_Verify_FullMethodName, in, out, opts...)
@@ -74,6 +85,7 @@ func (c *downloaderClient) Stats(ctx context.Context, in *StatsRequest, opts ...
// for forward compatibility
type DownloaderServer interface {
Download(context.Context, *DownloadRequest) (*emptypb.Empty, error)
+ Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error)
Verify(context.Context, *VerifyRequest) (*emptypb.Empty, error)
Stats(context.Context, *StatsRequest) (*StatsReply, error)
mustEmbedUnimplementedDownloaderServer()
@@ -86,6 +98,9 @@ type UnimplementedDownloaderServer struct {
func (UnimplementedDownloaderServer) Download(context.Context, *DownloadRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method Download not implemented")
}
+func (UnimplementedDownloaderServer) Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
+}
func (UnimplementedDownloaderServer) Verify(context.Context, *VerifyRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method Verify not implemented")
}
@@ -123,6 +138,24 @@ func _Downloader_Download_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
+func _Downloader_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(DownloaderServer).Delete(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Downloader_Delete_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(DownloaderServer).Delete(ctx, req.(*DeleteRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _Downloader_Verify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(VerifyRequest)
if err := dec(in); err != nil {
@@ -170,6 +203,10 @@ var Downloader_ServiceDesc = grpc.ServiceDesc{
MethodName: "Download",
Handler: _Downloader_Download_Handler,
},
+ {
+ MethodName: "Delete",
+ Handler: _Downloader_Delete_Handler,
+ },
{
MethodName: "Verify",
Handler: _Downloader_Verify_Handler,
diff --git a/erigon-lib/gointerfaces/execution/execution.pb.go b/erigon-lib/gointerfaces/execution/execution.pb.go
index 5c2effd51b8..c331568493b 100644
--- a/erigon-lib/gointerfaces/execution/execution.pb.go
+++ b/erigon-lib/gointerfaces/execution/execution.pb.go
@@ -1566,6 +1566,53 @@ func (x *ReadyResponse) GetReady() bool {
return false
}
+type FrozenBlocksResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ FrozenBlocks uint64 `protobuf:"varint,1,opt,name=frozen_blocks,json=frozenBlocks,proto3" json:"frozen_blocks,omitempty"`
+}
+
+func (x *FrozenBlocksResponse) Reset() {
+ *x = FrozenBlocksResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_execution_execution_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FrozenBlocksResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FrozenBlocksResponse) ProtoMessage() {}
+
+func (x *FrozenBlocksResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_execution_execution_proto_msgTypes[24]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FrozenBlocksResponse.ProtoReflect.Descriptor instead.
+func (*FrozenBlocksResponse) Descriptor() ([]byte, []int) {
+ return file_execution_execution_proto_rawDescGZIP(), []int{24}
+}
+
+func (x *FrozenBlocksResponse) GetFrozenBlocks() uint64 {
+ if x != nil {
+ return x.FrozenBlocks
+ }
+ return 0
+}
+
var File_execution_execution_proto protoreflect.FileDescriptor
var file_execution_execution_proto_rawDesc = []byte{
@@ -1808,87 +1855,96 @@ var file_execution_execution_proto_rawDesc = []byte{
0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x25, 0x0a, 0x0d, 0x52,
0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61,
- 0x64, 0x79, 0x2a, 0x71, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
- 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x01,
- 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x6f, 0x6f, 0x46, 0x61, 0x72, 0x41, 0x77, 0x61, 0x79, 0x10, 0x02,
- 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65,
- 0x6e, 0x74, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46,
- 0x6f, 0x72, 0x6b, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42,
- 0x75, 0x73, 0x79, 0x10, 0x05, 0x32, 0xf6, 0x08, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f,
- 0x63, 0x6b, 0x73, 0x12, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
- 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
- 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
- 0x4b, 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e,
- 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c,
- 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c,
- 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x47, 0x0a, 0x10,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65,
- 0x12, 0x15, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72,
- 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65,
- 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c,
- 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
- 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63,
- 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74,
- 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23,
- 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73,
- 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
- 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63,
- 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x43, 0x75, 0x72,
- 0x72, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47,
- 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x3f, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x44, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63,
- 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x47, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c,
- 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65,
- 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65,
- 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65,
- 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
- 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
- 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x59, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61,
- 0x6e, 0x67, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
+ 0x64, 0x79, 0x22, 0x3b, 0x0a, 0x14, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72,
+ 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x04, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2a,
+ 0x71, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12,
+ 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x01, 0x12, 0x0e, 0x0a,
+ 0x0a, 0x54, 0x6f, 0x6f, 0x46, 0x61, 0x72, 0x41, 0x77, 0x61, 0x79, 0x10, 0x02, 0x12, 0x12, 0x0a,
+ 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10,
+ 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x6b,
+ 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x75, 0x73, 0x79,
+ 0x10, 0x05, 0x32, 0xbf, 0x09, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x4a, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73,
+ 0x12, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73,
+ 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73,
+ 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4b, 0x0a, 0x0d,
+ 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e,
+ 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78,
+ 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x15, 0x2e,
+ 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68,
+ 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69,
+ 0x70, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c,
+ 0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
+ 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73,
+ 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x2e, 0x65, 0x78,
+ 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x6d,
+ 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x24, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e,
+ 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
+ 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48,
+ 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a,
+ 0x05, 0x47, 0x65, 0x74, 0x54, 0x44, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69,
+ 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x2e, 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47,
+ 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x65, 0x78,
+ 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65,
+ 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63,
+ 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x42, 0x6f,
+ 0x64, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47,
+ 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x10,
0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74,
- 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65,
- 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12,
- 0x23, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42,
- 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71,
+ 0x12, 0x22, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74,
+ 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x49, 0x73, 0x43, 0x61, 0x6e,
- 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0b, 0x2e, 0x74, 0x79, 0x70,
- 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0b,
- 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x26, 0x2e, 0x65, 0x78,
- 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68,
- 0x6f, 0x69, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x65,
- 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f,
- 0x69, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
- 0x2e, 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17,
- 0x5a, 0x15, 0x2e, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x65, 0x78,
- 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6f,
+ 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x65,
+ 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69,
+ 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65,
+ 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69,
+ 0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+ 0x48, 0x32, 0x35, 0x36, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
+ 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0b, 0x2e, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x26, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75,
+ 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61,
+ 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63,
+ 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x65, 0x78, 0x65, 0x63,
+ 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65,
+ 0x12, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
+ 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x46,
+ 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
+ 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
+ 0x69, 0x6f, 0x6e, 0x3b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1904,7 +1960,7 @@ func file_execution_execution_proto_rawDescGZIP() []byte {
}
var file_execution_execution_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_execution_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
+var file_execution_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_execution_execution_proto_goTypes = []interface{}{
(ExecutionStatus)(0), // 0: execution.ExecutionStatus
(*ForkChoiceReceipt)(nil), // 1: execution.ForkChoiceReceipt
@@ -1931,90 +1987,93 @@ var file_execution_execution_proto_goTypes = []interface{}{
(*GetBodiesByHashesRequest)(nil), // 22: execution.GetBodiesByHashesRequest
(*GetBodiesByRangeRequest)(nil), // 23: execution.GetBodiesByRangeRequest
(*ReadyResponse)(nil), // 24: execution.ReadyResponse
- (*types.H256)(nil), // 25: types.H256
- (*types.H160)(nil), // 26: types.H160
- (*types.H2048)(nil), // 27: types.H2048
- (*types.Withdrawal)(nil), // 28: types.Withdrawal
- (*types.ExecutionPayload)(nil), // 29: types.ExecutionPayload
- (*types.BlobsBundleV1)(nil), // 30: types.BlobsBundleV1
- (*emptypb.Empty)(nil), // 31: google.protobuf.Empty
+ (*FrozenBlocksResponse)(nil), // 25: execution.FrozenBlocksResponse
+ (*types.H256)(nil), // 26: types.H256
+ (*types.H160)(nil), // 27: types.H160
+ (*types.H2048)(nil), // 28: types.H2048
+ (*types.Withdrawal)(nil), // 29: types.Withdrawal
+ (*types.ExecutionPayload)(nil), // 30: types.ExecutionPayload
+ (*types.BlobsBundleV1)(nil), // 31: types.BlobsBundleV1
+ (*emptypb.Empty)(nil), // 32: google.protobuf.Empty
}
var file_execution_execution_proto_depIdxs = []int32{
0, // 0: execution.ForkChoiceReceipt.status:type_name -> execution.ExecutionStatus
- 25, // 1: execution.ForkChoiceReceipt.latest_valid_hash:type_name -> types.H256
+ 26, // 1: execution.ForkChoiceReceipt.latest_valid_hash:type_name -> types.H256
0, // 2: execution.ValidationReceipt.validation_status:type_name -> execution.ExecutionStatus
- 25, // 3: execution.ValidationReceipt.latest_valid_hash:type_name -> types.H256
- 25, // 4: execution.Header.parent_hash:type_name -> types.H256
- 26, // 5: execution.Header.coinbase:type_name -> types.H160
- 25, // 6: execution.Header.state_root:type_name -> types.H256
- 25, // 7: execution.Header.receipt_root:type_name -> types.H256
- 27, // 8: execution.Header.logs_bloom:type_name -> types.H2048
- 25, // 9: execution.Header.prev_randao:type_name -> types.H256
- 25, // 10: execution.Header.difficulty:type_name -> types.H256
- 25, // 11: execution.Header.block_hash:type_name -> types.H256
- 25, // 12: execution.Header.ommer_hash:type_name -> types.H256
- 25, // 13: execution.Header.transaction_hash:type_name -> types.H256
- 25, // 14: execution.Header.base_fee_per_gas:type_name -> types.H256
- 25, // 15: execution.Header.withdrawal_hash:type_name -> types.H256
- 25, // 16: execution.Header.parent_beacon_block_root:type_name -> types.H256
- 25, // 17: execution.BlockBody.block_hash:type_name -> types.H256
+ 26, // 3: execution.ValidationReceipt.latest_valid_hash:type_name -> types.H256
+ 26, // 4: execution.Header.parent_hash:type_name -> types.H256
+ 27, // 5: execution.Header.coinbase:type_name -> types.H160
+ 26, // 6: execution.Header.state_root:type_name -> types.H256
+ 26, // 7: execution.Header.receipt_root:type_name -> types.H256
+ 28, // 8: execution.Header.logs_bloom:type_name -> types.H2048
+ 26, // 9: execution.Header.prev_randao:type_name -> types.H256
+ 26, // 10: execution.Header.difficulty:type_name -> types.H256
+ 26, // 11: execution.Header.block_hash:type_name -> types.H256
+ 26, // 12: execution.Header.ommer_hash:type_name -> types.H256
+ 26, // 13: execution.Header.transaction_hash:type_name -> types.H256
+ 26, // 14: execution.Header.base_fee_per_gas:type_name -> types.H256
+ 26, // 15: execution.Header.withdrawal_hash:type_name -> types.H256
+ 26, // 16: execution.Header.parent_beacon_block_root:type_name -> types.H256
+ 26, // 17: execution.BlockBody.block_hash:type_name -> types.H256
4, // 18: execution.BlockBody.uncles:type_name -> execution.Header
- 28, // 19: execution.BlockBody.withdrawals:type_name -> types.Withdrawal
+ 29, // 19: execution.BlockBody.withdrawals:type_name -> types.Withdrawal
4, // 20: execution.Block.header:type_name -> execution.Header
5, // 21: execution.Block.body:type_name -> execution.BlockBody
4, // 22: execution.GetHeaderResponse.header:type_name -> execution.Header
- 25, // 23: execution.GetTDResponse.td:type_name -> types.H256
+ 26, // 23: execution.GetTDResponse.td:type_name -> types.H256
5, // 24: execution.GetBodyResponse.body:type_name -> execution.BlockBody
- 25, // 25: execution.GetSegmentRequest.block_hash:type_name -> types.H256
+ 26, // 25: execution.GetSegmentRequest.block_hash:type_name -> types.H256
6, // 26: execution.InsertBlocksRequest.blocks:type_name -> execution.Block
- 25, // 27: execution.ForkChoice.head_block_hash:type_name -> types.H256
- 25, // 28: execution.ForkChoice.finalized_block_hash:type_name -> types.H256
- 25, // 29: execution.ForkChoice.safe_block_hash:type_name -> types.H256
+ 26, // 27: execution.ForkChoice.head_block_hash:type_name -> types.H256
+ 26, // 28: execution.ForkChoice.finalized_block_hash:type_name -> types.H256
+ 26, // 29: execution.ForkChoice.safe_block_hash:type_name -> types.H256
0, // 30: execution.InsertionResult.result:type_name -> execution.ExecutionStatus
- 25, // 31: execution.ValidationRequest.hash:type_name -> types.H256
- 25, // 32: execution.AssembleBlockRequest.parent_hash:type_name -> types.H256
- 25, // 33: execution.AssembleBlockRequest.prev_randao:type_name -> types.H256
- 26, // 34: execution.AssembleBlockRequest.suggested_fee_recipient:type_name -> types.H160
- 28, // 35: execution.AssembleBlockRequest.withdrawals:type_name -> types.Withdrawal
- 25, // 36: execution.AssembleBlockRequest.parent_beacon_block_root:type_name -> types.H256
- 29, // 37: execution.AssembledBlockData.execution_payload:type_name -> types.ExecutionPayload
- 25, // 38: execution.AssembledBlockData.block_value:type_name -> types.H256
- 30, // 39: execution.AssembledBlockData.blobs_bundle:type_name -> types.BlobsBundleV1
+ 26, // 31: execution.ValidationRequest.hash:type_name -> types.H256
+ 26, // 32: execution.AssembleBlockRequest.parent_hash:type_name -> types.H256
+ 26, // 33: execution.AssembleBlockRequest.prev_randao:type_name -> types.H256
+ 27, // 34: execution.AssembleBlockRequest.suggested_fee_recipient:type_name -> types.H160
+ 29, // 35: execution.AssembleBlockRequest.withdrawals:type_name -> types.Withdrawal
+ 26, // 36: execution.AssembleBlockRequest.parent_beacon_block_root:type_name -> types.H256
+ 30, // 37: execution.AssembledBlockData.execution_payload:type_name -> types.ExecutionPayload
+ 26, // 38: execution.AssembledBlockData.block_value:type_name -> types.H256
+ 31, // 39: execution.AssembledBlockData.blobs_bundle:type_name -> types.BlobsBundleV1
19, // 40: execution.GetAssembledBlockResponse.data:type_name -> execution.AssembledBlockData
5, // 41: execution.GetBodiesBatchResponse.bodies:type_name -> execution.BlockBody
- 25, // 42: execution.GetBodiesByHashesRequest.hashes:type_name -> types.H256
+ 26, // 42: execution.GetBodiesByHashesRequest.hashes:type_name -> types.H256
12, // 43: execution.Execution.InsertBlocks:input_type -> execution.InsertBlocksRequest
15, // 44: execution.Execution.ValidateChain:input_type -> execution.ValidationRequest
13, // 45: execution.Execution.UpdateForkChoice:input_type -> execution.ForkChoice
16, // 46: execution.Execution.AssembleBlock:input_type -> execution.AssembleBlockRequest
18, // 47: execution.Execution.GetAssembledBlock:input_type -> execution.GetAssembledBlockRequest
- 31, // 48: execution.Execution.CurrentHeader:input_type -> google.protobuf.Empty
+ 32, // 48: execution.Execution.CurrentHeader:input_type -> google.protobuf.Empty
11, // 49: execution.Execution.GetTD:input_type -> execution.GetSegmentRequest
11, // 50: execution.Execution.GetHeader:input_type -> execution.GetSegmentRequest
11, // 51: execution.Execution.GetBody:input_type -> execution.GetSegmentRequest
23, // 52: execution.Execution.GetBodiesByRange:input_type -> execution.GetBodiesByRangeRequest
22, // 53: execution.Execution.GetBodiesByHashes:input_type -> execution.GetBodiesByHashesRequest
- 25, // 54: execution.Execution.IsCanonicalHash:input_type -> types.H256
- 25, // 55: execution.Execution.GetHeaderHashNumber:input_type -> types.H256
- 31, // 56: execution.Execution.GetForkChoice:input_type -> google.protobuf.Empty
- 31, // 57: execution.Execution.Ready:input_type -> google.protobuf.Empty
- 14, // 58: execution.Execution.InsertBlocks:output_type -> execution.InsertionResult
- 2, // 59: execution.Execution.ValidateChain:output_type -> execution.ValidationReceipt
- 1, // 60: execution.Execution.UpdateForkChoice:output_type -> execution.ForkChoiceReceipt
- 17, // 61: execution.Execution.AssembleBlock:output_type -> execution.AssembleBlockResponse
- 20, // 62: execution.Execution.GetAssembledBlock:output_type -> execution.GetAssembledBlockResponse
- 7, // 63: execution.Execution.CurrentHeader:output_type -> execution.GetHeaderResponse
- 8, // 64: execution.Execution.GetTD:output_type -> execution.GetTDResponse
- 7, // 65: execution.Execution.GetHeader:output_type -> execution.GetHeaderResponse
- 9, // 66: execution.Execution.GetBody:output_type -> execution.GetBodyResponse
- 21, // 67: execution.Execution.GetBodiesByRange:output_type -> execution.GetBodiesBatchResponse
- 21, // 68: execution.Execution.GetBodiesByHashes:output_type -> execution.GetBodiesBatchResponse
- 3, // 69: execution.Execution.IsCanonicalHash:output_type -> execution.IsCanonicalResponse
- 10, // 70: execution.Execution.GetHeaderHashNumber:output_type -> execution.GetHeaderHashNumberResponse
- 13, // 71: execution.Execution.GetForkChoice:output_type -> execution.ForkChoice
- 24, // 72: execution.Execution.Ready:output_type -> execution.ReadyResponse
- 58, // [58:73] is the sub-list for method output_type
- 43, // [43:58] is the sub-list for method input_type
+ 26, // 54: execution.Execution.IsCanonicalHash:input_type -> types.H256
+ 26, // 55: execution.Execution.GetHeaderHashNumber:input_type -> types.H256
+ 32, // 56: execution.Execution.GetForkChoice:input_type -> google.protobuf.Empty
+ 32, // 57: execution.Execution.Ready:input_type -> google.protobuf.Empty
+ 32, // 58: execution.Execution.FrozenBlocks:input_type -> google.protobuf.Empty
+ 14, // 59: execution.Execution.InsertBlocks:output_type -> execution.InsertionResult
+ 2, // 60: execution.Execution.ValidateChain:output_type -> execution.ValidationReceipt
+ 1, // 61: execution.Execution.UpdateForkChoice:output_type -> execution.ForkChoiceReceipt
+ 17, // 62: execution.Execution.AssembleBlock:output_type -> execution.AssembleBlockResponse
+ 20, // 63: execution.Execution.GetAssembledBlock:output_type -> execution.GetAssembledBlockResponse
+ 7, // 64: execution.Execution.CurrentHeader:output_type -> execution.GetHeaderResponse
+ 8, // 65: execution.Execution.GetTD:output_type -> execution.GetTDResponse
+ 7, // 66: execution.Execution.GetHeader:output_type -> execution.GetHeaderResponse
+ 9, // 67: execution.Execution.GetBody:output_type -> execution.GetBodyResponse
+ 21, // 68: execution.Execution.GetBodiesByRange:output_type -> execution.GetBodiesBatchResponse
+ 21, // 69: execution.Execution.GetBodiesByHashes:output_type -> execution.GetBodiesBatchResponse
+ 3, // 70: execution.Execution.IsCanonicalHash:output_type -> execution.IsCanonicalResponse
+ 10, // 71: execution.Execution.GetHeaderHashNumber:output_type -> execution.GetHeaderHashNumberResponse
+ 13, // 72: execution.Execution.GetForkChoice:output_type -> execution.ForkChoice
+ 24, // 73: execution.Execution.Ready:output_type -> execution.ReadyResponse
+ 25, // 74: execution.Execution.FrozenBlocks:output_type -> execution.FrozenBlocksResponse
+ 59, // [59:75] is the sub-list for method output_type
+ 43, // [43:59] is the sub-list for method input_type
43, // [43:43] is the sub-list for extension type_name
43, // [43:43] is the sub-list for extension extendee
0, // [0:43] is the sub-list for field type_name
@@ -2314,6 +2373,18 @@ func file_execution_execution_proto_init() {
return nil
}
}
+ file_execution_execution_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FrozenBlocksResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
}
file_execution_execution_proto_msgTypes[3].OneofWrappers = []interface{}{}
file_execution_execution_proto_msgTypes[6].OneofWrappers = []interface{}{}
@@ -2330,7 +2401,7 @@ func file_execution_execution_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_execution_execution_proto_rawDesc,
NumEnums: 1,
- NumMessages: 24,
+ NumMessages: 25,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/erigon-lib/gointerfaces/execution/execution_grpc.pb.go b/erigon-lib/gointerfaces/execution/execution_grpc.pb.go
index b3779a0b1b7..065a305e8fc 100644
--- a/erigon-lib/gointerfaces/execution/execution_grpc.pb.go
+++ b/erigon-lib/gointerfaces/execution/execution_grpc.pb.go
@@ -36,6 +36,7 @@ const (
Execution_GetHeaderHashNumber_FullMethodName = "/execution.Execution/GetHeaderHashNumber"
Execution_GetForkChoice_FullMethodName = "/execution.Execution/GetForkChoice"
Execution_Ready_FullMethodName = "/execution.Execution/Ready"
+ Execution_FrozenBlocks_FullMethodName = "/execution.Execution/FrozenBlocks"
)
// ExecutionClient is the client API for Execution service.
@@ -66,6 +67,8 @@ type ExecutionClient interface {
// Misc
// We want to figure out whether we processed snapshots and cleanup sync cycles.
Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ReadyResponse, error)
+ // Frozen blocks are how many blocks are in snapshots .seg files.
+ FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error)
}
type executionClient struct {
@@ -211,6 +214,15 @@ func (c *executionClient) Ready(ctx context.Context, in *emptypb.Empty, opts ...
return out, nil
}
+func (c *executionClient) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error) {
+ out := new(FrozenBlocksResponse)
+ err := c.cc.Invoke(ctx, Execution_FrozenBlocks_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// ExecutionServer is the server API for Execution service.
// All implementations must embed UnimplementedExecutionServer
// for forward compatibility
@@ -239,6 +251,8 @@ type ExecutionServer interface {
// Misc
// We want to figure out whether we processed snapshots and cleanup sync cycles.
Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error)
+ // Frozen blocks are how many blocks are in snapshots .seg files.
+ FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error)
mustEmbedUnimplementedExecutionServer()
}
@@ -291,6 +305,9 @@ func (UnimplementedExecutionServer) GetForkChoice(context.Context, *emptypb.Empt
func (UnimplementedExecutionServer) Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented")
}
+func (UnimplementedExecutionServer) FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method FrozenBlocks not implemented")
+}
func (UnimplementedExecutionServer) mustEmbedUnimplementedExecutionServer() {}
// UnsafeExecutionServer may be embedded to opt out of forward compatibility for this service.
@@ -574,6 +591,24 @@ func _Execution_Ready_Handler(srv interface{}, ctx context.Context, dec func(int
return interceptor(ctx, in, info, handler)
}
+func _Execution_FrozenBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(emptypb.Empty)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ExecutionServer).FrozenBlocks(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Execution_FrozenBlocks_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ExecutionServer).FrozenBlocks(ctx, req.(*emptypb.Empty))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
// Execution_ServiceDesc is the grpc.ServiceDesc for Execution service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@@ -641,6 +676,10 @@ var Execution_ServiceDesc = grpc.ServiceDesc{
MethodName: "Ready",
Handler: _Execution_Ready_Handler,
},
+ {
+ MethodName: "FrozenBlocks",
+ Handler: _Execution_FrozenBlocks_Handler,
+ },
},
Streams: []grpc.StreamDesc{},
Metadata: "execution/execution.proto",
diff --git a/erigon-lib/gointerfaces/sentinel/sentinel.pb.go b/erigon-lib/gointerfaces/sentinel/sentinel.pb.go
index 78267b9fd9f..0fc32fe89d8 100644
--- a/erigon-lib/gointerfaces/sentinel/sentinel.pb.go
+++ b/erigon-lib/gointerfaces/sentinel/sentinel.pb.go
@@ -25,13 +25,13 @@ type GossipType int32
const (
// Global gossip topics.
- GossipType_BeaconBlockGossipType GossipType = 0
- GossipType_AggregateAndProofGossipType GossipType = 1
- GossipType_VoluntaryExitGossipType GossipType = 2
- GossipType_ProposerSlashingGossipType GossipType = 3
- GossipType_AttesterSlashingGossipType GossipType = 4
- GossipType_BlobSidecarType GossipType = 5
- GossipType_BlsToExecutionChangeType GossipType = 6
+ GossipType_BeaconBlockGossipType GossipType = 0
+ GossipType_AggregateAndProofGossipType GossipType = 1
+ GossipType_VoluntaryExitGossipType GossipType = 2
+ GossipType_ProposerSlashingGossipType GossipType = 3
+ GossipType_AttesterSlashingGossipType GossipType = 4
+ GossipType_BlobSidecarType GossipType = 5
+ GossipType_BlsToExecutionChangeGossipType GossipType = 6
)
// Enum value maps for GossipType.
@@ -43,16 +43,16 @@ var (
3: "ProposerSlashingGossipType",
4: "AttesterSlashingGossipType",
5: "BlobSidecarType",
- 6: "BlsToExecutionChangeType",
+ 6: "BlsToExecutionChangeGossipType",
}
GossipType_value = map[string]int32{
- "BeaconBlockGossipType": 0,
- "AggregateAndProofGossipType": 1,
- "VoluntaryExitGossipType": 2,
- "ProposerSlashingGossipType": 3,
- "AttesterSlashingGossipType": 4,
- "BlobSidecarType": 5,
- "BlsToExecutionChangeType": 6,
+ "BeaconBlockGossipType": 0,
+ "AggregateAndProofGossipType": 1,
+ "VoluntaryExitGossipType": 2,
+ "ProposerSlashingGossipType": 3,
+ "AttesterSlashingGossipType": 4,
+ "BlobSidecarType": 5,
+ "BlsToExecutionChangeGossipType": 6,
}
)
@@ -528,7 +528,7 @@ var file_p2psentinel_sentinel_proto_rawDesc = []byte{
0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x22, 0x0a,
0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65,
0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65,
- 0x72, 0x2a, 0xd8, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
+ 0x72, 0x2a, 0xde, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
0x12, 0x19, 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47,
0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41,
0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66,
@@ -539,44 +539,45 @@ var file_p2psentinel_sentinel_proto_rawDesc = []byte{
0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x74, 0x74,
0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x6f, 0x73,
0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, 0x6f,
- 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x1c,
- 0x0a, 0x18, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
- 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x10, 0x06, 0x32, 0x90, 0x04, 0x0a,
- 0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62,
- 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x16, 0x2e, 0x73,
- 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e,
- 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b,
- 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x2e, 0x73, 0x65,
- 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61,
- 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x09, 0x53, 0x65,
- 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
- 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74,
- 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e,
- 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
- 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x42, 0x61,
- 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
- 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c,
- 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a,
- 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e,
- 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e,
- 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65,
- 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65,
- 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65,
- 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
+ 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x22,
+ 0x0a, 0x1e, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
+ 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65,
+ 0x10, 0x06, 0x32, 0x90, 0x04, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12,
+ 0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73,
+ 0x69, 0x70, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e,
+ 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61,
+ 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
+ 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61,
+ 0x12, 0x35, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e,
+ 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a,
+ 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65,
+ 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45,
+ 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65,
+ 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x12, 0x31, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65,
+ 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65,
+ 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72,
+ 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72,
+ 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61,
+ 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69,
0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x47, 0x6f, 0x73, 0x73, 0x69,
- 0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73,
- 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
- 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42,
- 0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65,
- 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e,
+ 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16,
+ 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73,
+ 0x68, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e,
+ 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e,
+ 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69,
+ 0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/common/dbutils/composite_keys.go b/erigon-lib/kv/dbutils/composite_keys.go
similarity index 95%
rename from common/dbutils/composite_keys.go
rename to erigon-lib/kv/dbutils/composite_keys.go
index d2274f022e3..2be332fbfee 100644
--- a/common/dbutils/composite_keys.go
+++ b/erigon-lib/kv/dbutils/composite_keys.go
@@ -174,12 +174,3 @@ func encodeTimestamp(timestamp uint64) []byte {
}
return suffix
}
-
-func decodeTimestamp(suffix []byte) (uint64, []byte) {
- bytecount := int(suffix[0] >> 5)
- timestamp := uint64(suffix[0] & 0x1f)
- for i := 1; i < bytecount; i++ {
- timestamp = (timestamp << 8) | uint64(suffix[i])
- }
- return timestamp, suffix[bytecount:]
-}
diff --git a/common/dbutils/composite_keys_test.go b/erigon-lib/kv/dbutils/composite_keys_test.go
similarity index 93%
rename from common/dbutils/composite_keys_test.go
rename to erigon-lib/kv/dbutils/composite_keys_test.go
index 7eac33bcfc1..619225a1b47 100644
--- a/common/dbutils/composite_keys_test.go
+++ b/erigon-lib/kv/dbutils/composite_keys_test.go
@@ -3,10 +3,9 @@ package dbutils
import (
"testing"
+ "github.com/ledgerwatch/erigon-lib/common"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/stretchr/testify/assert"
-
- "github.com/ledgerwatch/erigon/common"
)
func TestPlainParseStoragePrefix(t *testing.T) {
@@ -36,7 +35,7 @@ func TestPlainParseCompositeStorageKey(t *testing.T) {
}
func TestParseStoragePrefix(t *testing.T) {
- expectedAddrHash, _ := common.HashData(libcommon.HexToAddress("0x5A0b54D5dc17e0AadC383d2db43B0a0D3E029c4c").Bytes())
+ expectedAddrHash, _ := libcommon.HashData(libcommon.HexToAddress("0x5A0b54D5dc17e0AadC383d2db43B0a0D3E029c4c").Bytes())
expectedIncarnation := uint64(999000999)
prefix := GenerateStoragePrefix(expectedAddrHash[:], expectedIncarnation)
diff --git a/common/dbutils/helper.go b/erigon-lib/kv/dbutils/helper.go
similarity index 100%
rename from common/dbutils/helper.go
rename to erigon-lib/kv/dbutils/helper.go
diff --git a/common/dbutils/history_index.go b/erigon-lib/kv/dbutils/history_index.go
similarity index 100%
rename from common/dbutils/history_index.go
rename to erigon-lib/kv/dbutils/history_index.go
diff --git a/common/dbutils/suffix_type.go b/erigon-lib/kv/dbutils/suffix_type.go
similarity index 100%
rename from common/dbutils/suffix_type.go
rename to erigon-lib/kv/dbutils/suffix_type.go
diff --git a/erigon-lib/kv/kv_interface.go b/erigon-lib/kv/kv_interface.go
index adbd8b23c32..86255720a00 100644
--- a/erigon-lib/kv/kv_interface.go
+++ b/erigon-lib/kv/kv_interface.go
@@ -256,6 +256,9 @@ type RoDB interface {
BeginRo(ctx context.Context) (Tx, error)
AllTables() TableCfg
PageSize() uint64
+
+ // Pointer to the underlying C environment handle, if applicable (e.g. *C.MDBX_env)
+ CHandle() unsafe.Pointer
}
// RwDB low-level database interface - main target is - to provide common abstraction over top of MDBX and RemoteKV.
diff --git a/erigon-lib/kv/mdbx/kv_mdbx.go b/erigon-lib/kv/mdbx/kv_mdbx.go
index 14afe908494..7bb1702b725 100644
--- a/erigon-lib/kv/mdbx/kv_mdbx.go
+++ b/erigon-lib/kv/mdbx/kv_mdbx.go
@@ -303,6 +303,9 @@ func (opts MdbxOpts) Open(ctx context.Context) (kv.RwDB, error) {
}
opts.pageSize = uint64(in.PageSize)
+ if opts.label == kv.ChainDB {
+ opts.log.Info("[db] chaindata", "sizeLimit", opts.mapSize, "pageSize", opts.pageSize)
+ }
// erigon using big transactions
// increase "page measured" options. need do it after env.Open() because default are depend on pageSize known only after env.Open()
@@ -445,6 +448,10 @@ func (db *MdbxKV) PageSize() uint64 { return db.opts.pageSize }
func (db *MdbxKV) ReadOnly() bool { return db.opts.HasFlag(mdbx.Readonly) }
func (db *MdbxKV) Accede() bool { return db.opts.HasFlag(mdbx.Accede) }
+func (db *MdbxKV) CHandle() unsafe.Pointer {
+ return db.env.CHandle()
+}
+
// openDBIs - first trying to open existing DBI's in RO transaction
// otherwise re-try by RW transaction
// it allow open DB from another process - even if main process holding long RW transaction
@@ -821,7 +828,7 @@ func (tx *MdbxTx) Commit() error {
latency, err := tx.tx.Commit()
if err != nil {
- return err
+ return fmt.Errorf("lable: %s, %w", tx.db.opts.label, err)
}
if tx.db.opts.label == kv.ChainDB {
diff --git a/erigon-lib/kv/mdbx/kv_mdbx_temporary.go b/erigon-lib/kv/mdbx/kv_mdbx_temporary.go
index b35d2f75618..c5e585bffe1 100644
--- a/erigon-lib/kv/mdbx/kv_mdbx_temporary.go
+++ b/erigon-lib/kv/mdbx/kv_mdbx_temporary.go
@@ -19,6 +19,7 @@ package mdbx
import (
"context"
"os"
+ "unsafe"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
@@ -82,3 +83,7 @@ func (t *TemporaryMdbx) Close() {
t.db.Close()
os.RemoveAll(t.path)
}
+
+func (t *TemporaryMdbx) CHandle() unsafe.Pointer {
+ panic("CHandle not implemented")
+}
diff --git a/erigon-lib/kv/membatch/mapmutation.go b/erigon-lib/kv/membatch/mapmutation.go
index 0a38f39feff..994a042f67f 100644
--- a/erigon-lib/kv/membatch/mapmutation.go
+++ b/erigon-lib/kv/membatch/mapmutation.go
@@ -3,6 +3,7 @@ package membatch
import (
"context"
"encoding/binary"
+ "errors"
"fmt"
"sync"
"time"
@@ -222,8 +223,8 @@ func (m *Mapmutation) doCommit(tx kv.RwTx) error {
}
func (m *Mapmutation) Flush(ctx context.Context, tx kv.RwTx) error {
- if m.db == nil {
- return nil
+ if tx == nil {
+ return errors.New("rwTx needed")
}
m.mu.Lock()
defer m.mu.Unlock()
@@ -234,18 +235,24 @@ func (m *Mapmutation) Flush(ctx context.Context, tx kv.RwTx) error {
m.puts = map[string]map[string][]byte{}
m.size = 0
m.count = 0
- m.clean()
return nil
}
func (m *Mapmutation) Close() {
+ if m.clean == nil {
+ return
+ }
+
m.mu.Lock()
defer m.mu.Unlock()
m.puts = map[string]map[string][]byte{}
m.size = 0
m.count = 0
m.size = 0
+
m.clean()
+ m.clean = nil
+
}
func (m *Mapmutation) Commit() error { panic("not db txn, use .Flush method") }
func (m *Mapmutation) Rollback() { panic("not db txn, use .Close method") }
diff --git a/erigon-lib/kv/membatch/mapmutation_test.go b/erigon-lib/kv/membatch/mapmutation_test.go
new file mode 100644
index 00000000000..e3e9927036c
--- /dev/null
+++ b/erigon-lib/kv/membatch/mapmutation_test.go
@@ -0,0 +1,32 @@
+package membatch
+
+import (
+ "context"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon-lib/kv/memdb"
+ "github.com/ledgerwatch/log/v3"
+ "github.com/stretchr/testify/require"
+ "os"
+ "testing"
+)
+
+func TestMapmutation_Flush_Close(t *testing.T) {
+ db := memdb.NewTestDB(t)
+
+ tx, err := db.BeginRw(context.Background())
+ require.NoError(t, err)
+ defer tx.Rollback()
+
+ batch := NewHashBatch(tx, nil, os.TempDir(), log.New())
+ defer func() {
+ batch.Close()
+ }()
+ err = batch.Put(kv.ChaindataTables[0], []byte{1}, []byte{1})
+ require.NoError(t, err)
+ err = batch.Put(kv.ChaindataTables[0], []byte{2}, []byte{2})
+ require.NoError(t, err)
+ err = batch.Flush(context.Background(), tx)
+ require.NoError(t, err)
+ batch.Close()
+ batch.Close()
+}
diff --git a/erigon-lib/kv/remotedb/kv_remote.go b/erigon-lib/kv/remotedb/kv_remote.go
index e0ae3a26e79..7df14ae88de 100644
--- a/erigon-lib/kv/remotedb/kv_remote.go
+++ b/erigon-lib/kv/remotedb/kv_remote.go
@@ -148,6 +148,10 @@ func (db *DB) EnsureVersionCompatibility() bool {
func (db *DB) Close() {}
+func (db *DB) CHandle() unsafe.Pointer {
+ panic("CHandle not implemented")
+}
+
func (db *DB) BeginRo(ctx context.Context) (txn kv.Tx, err error) {
select {
case <-ctx.Done():
diff --git a/erigon-lib/kv/tables.go b/erigon-lib/kv/tables.go
index b7f4e7b9493..995603bfa8f 100644
--- a/erigon-lib/kv/tables.go
+++ b/erigon-lib/kv/tables.go
@@ -430,10 +430,21 @@ const (
BeaconBlocks = "BeaconBlock"
// [slot] => [attestation list (custom encoding)]
Attestetations = "Attestetations"
- // [slot] => [Finalized block root]
- FinalizedBlockRoots = "FinalizedBlockRoots"
- // [Root (block root/state root/eth1 root)] => Slot
- RootSlotIndex = "RootSlotIndex"
+
+ // [slot] => [Canonical block root]
+ CanonicalBlockRoots = "CanonicalBlockRoots"
+ // [Root (block root] => Slot
+ BlockRootToSlot = "BlockRootToSlot"
+ // [Block Root] => [State Root]
+ BlockRootToStateRoot = "BlockRootToStateRoot"
+ StateRootToBlockRoot = "StateRootToBlockRoot"
+ // [Block Root] => [Parent Root]
+ BlockRootToParentRoot = "BlockRootToParentRoot"
+
+ HighestFinalized = "HighestFinalized" // hash -> transaction/receipt lookup metadata
+
+ // BlockRoot => Beacon Block Header
+ BeaconBlockHeaders = "BeaconBlockHeaders"
// LightClientStore => LightClientStore object
// LightClientFinalityUpdate => latest finality update
@@ -469,6 +480,7 @@ var (
CurrentBodiesSnapshotBlock = []byte("CurrentBodiesSnapshotBlock")
PlainStateVersion = []byte("PlainStateVersion")
+ HighestFinalizedKey = []byte("HighestFinalized")
LightClientStore = []byte("LightClientStore")
LightClientFinalityUpdate = []byte("LightClientFinalityUpdate")
LightClientOptimisticUpdate = []byte("LightClientOptimisticUpdate")
@@ -586,8 +598,13 @@ var ChaindataTables = []string{
// Beacon stuff
BeaconState,
BeaconBlocks,
- FinalizedBlockRoots,
- RootSlotIndex,
+ CanonicalBlockRoots,
+ BlockRootToSlot,
+ BlockRootToStateRoot,
+ StateRootToBlockRoot,
+ BlockRootToParentRoot,
+ BeaconBlockHeaders,
+ HighestFinalized,
Attestetations,
LightClient,
LightClientUpdates,
diff --git a/erigon-lib/kv/temporal/historyv2/readme.md b/erigon-lib/kv/temporal/historyv2/readme.md
index 4dbad1c273d..5b35b0d8083 100644
--- a/erigon-lib/kv/temporal/historyv2/readme.md
+++ b/erigon-lib/kv/temporal/historyv2/readme.md
@@ -50,7 +50,7 @@ AccountChangeSet is serialized in the following manner in order to facilitate bi
### Keys
The number of keys N (uint32, 4 bytes)
Contiguous array of keys (N*32 bytes)
-### Values lengthes
+### Values lengths
Contiguous array of accumulating value indexes:
len(val0), len(val0)+len(val1), ..., len(val0)+len(val1)+...+len(val_{N-1})
(4*N bytes since the lengths are treated as uint32).
@@ -61,5 +61,5 @@ Value | Type | Comment
------------ | ------------- | -------------
num of keys | uint32 |
address hashes | [num of keys][32]byte | [num of keys]common.Hash
-values lengthes | [num of keys]uint32
+values lengths | [num of keys]uint32
values | [num of keys][]byte
diff --git a/metrics/collector.go b/erigon-lib/metrics/collector.go
similarity index 81%
rename from metrics/collector.go
rename to erigon-lib/metrics/collector.go
index 93bd52aa5ea..4652b676ab5 100644
--- a/metrics/collector.go
+++ b/erigon-lib/metrics/collector.go
@@ -1,19 +1,3 @@
-// Copyright 2019 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
package metrics
import (
diff --git a/metrics/exp.go b/erigon-lib/metrics/exp.go
similarity index 100%
rename from metrics/exp.go
rename to erigon-lib/metrics/exp.go
diff --git a/metrics/parsing.go b/erigon-lib/metrics/parsing.go
similarity index 100%
rename from metrics/parsing.go
rename to erigon-lib/metrics/parsing.go
diff --git a/metrics/prometheus.go b/erigon-lib/metrics/prometheus.go
similarity index 70%
rename from metrics/prometheus.go
rename to erigon-lib/metrics/prometheus.go
index 932bcdc0095..3ea14b35df5 100644
--- a/metrics/prometheus.go
+++ b/erigon-lib/metrics/prometheus.go
@@ -1,20 +1,3 @@
-// Copyright 2019 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
-// Package prometheus exposes go-metrics into a Prometheus format.
package metrics
import (
diff --git a/metrics/register.go b/erigon-lib/metrics/register.go
similarity index 92%
rename from metrics/register.go
rename to erigon-lib/metrics/register.go
index 0839816cb29..50bc619789f 100644
--- a/metrics/register.go
+++ b/erigon-lib/metrics/register.go
@@ -45,6 +45,12 @@ func GetOrCreateCounter(s string, isGauge ...bool) Counter {
counter := defaultSet.GetOrCreateGauge(s)
return intCounter{counter}
} else {
+ if counter := DefaultRegistry.Get(s); counter != nil {
+ if counter, ok := counter.(Counter); ok {
+ return counter
+ }
+ }
+
counter := vm.GetOrCreateCounter(s, isGauge...)
DefaultRegistry.Register(s, counter)
vm.GetDefaultSet().UnregisterMetric(s)
diff --git a/metrics/registry.go b/erigon-lib/metrics/registry.go
similarity index 100%
rename from metrics/registry.go
rename to erigon-lib/metrics/registry.go
diff --git a/metrics/set.go b/erigon-lib/metrics/set.go
similarity index 97%
rename from metrics/set.go
rename to erigon-lib/metrics/set.go
index 897d3d7946f..ee455b50c61 100644
--- a/metrics/set.go
+++ b/erigon-lib/metrics/set.go
@@ -124,7 +124,7 @@ func (s *Set) GetOrCreateHistogram(name string, help ...string) prometheus.Histo
metric, err := NewHistogram(name, help...)
if err != nil {
- panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err))
+ panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err))
}
nmNew := &namedMetric{
@@ -205,7 +205,7 @@ func (s *Set) GetOrCreateCounter(name string, help ...string) prometheus.Counter
metric, err := NewCounter(name, help...)
if err != nil {
- panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err))
+ panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err))
}
nmNew := &namedMetric{
@@ -289,7 +289,7 @@ func (s *Set) GetOrCreateGauge(name string, help ...string) prometheus.Gauge {
metric, err := NewGauge(name, help...)
if err != nil {
- panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err))
+ panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err))
}
nmNew := &namedMetric{
@@ -380,7 +380,7 @@ func (s *Set) GetOrCreateGaugeFunc(name string, f func() float64, help ...string
metric, err := NewGaugeFunc(name, f, help...)
if err != nil {
- panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err))
+ panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err))
}
nmNew := &namedMetric{
@@ -498,7 +498,7 @@ func (s *Set) GetOrCreateSummaryExt(name string, window time.Duration, quantiles
metric, err := NewSummary(name, window, quantiles, help...)
if err != nil {
- panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err))
+ panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err))
}
nmNew := &namedMetric{
@@ -524,7 +524,7 @@ func (s *Set) GetOrCreateSummaryExt(name string, window time.Duration, quantiles
func (s *Set) registerMetric(name string, m prometheus.Metric) {
if _, _, err := parseMetric(name); err != nil {
- panic(fmt.Errorf("BUG: invalid metric name %q: %s", name, err))
+ panic(fmt.Errorf("BUG: invalid metric name %q: %w", name, err))
}
s.mu.Lock()
// defer will unlock in case of panic
diff --git a/metrics/timer.go b/erigon-lib/metrics/timer.go
similarity index 100%
rename from metrics/timer.go
rename to erigon-lib/metrics/timer.go
diff --git a/erigon-lib/mmap/total_memory.go b/erigon-lib/mmap/total_memory.go
new file mode 100644
index 00000000000..33eca4ea38a
--- /dev/null
+++ b/erigon-lib/mmap/total_memory.go
@@ -0,0 +1,21 @@
+package mmap
+
+import (
+ "github.com/ledgerwatch/erigon-lib/common/cmp"
+ "github.com/pbnjay/memory"
+ "runtime/debug"
+)
+
+func TotalMemory() uint64 {
+ mem := memory.TotalMemory()
+
+ if cgroupsMemLimit, err := cgroupsMemoryLimit(); (err == nil) && (cgroupsMemLimit > 0) {
+ mem = cmp.Min(mem, cgroupsMemLimit)
+ }
+
+ if goMemLimit := debug.SetMemoryLimit(-1); goMemLimit > 0 {
+ mem = cmp.Min(mem, uint64(goMemLimit))
+ }
+
+ return mem
+}
diff --git a/erigon-lib/mmap/total_memory_cgroups.go b/erigon-lib/mmap/total_memory_cgroups.go
new file mode 100644
index 00000000000..696a1f89e8f
--- /dev/null
+++ b/erigon-lib/mmap/total_memory_cgroups.go
@@ -0,0 +1,117 @@
+//go:build linux
+
+/*
+https://github.com/raulk/go-watchdog
+https://github.com/elee1766/go-watchdog
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+package mmap
+
+import (
+ "errors"
+ "fmt"
+ "github.com/containerd/cgroups/v3"
+ "github.com/containerd/cgroups/v3/cgroup1"
+ "github.com/containerd/cgroups/v3/cgroup2"
+ "os"
+)
+
+// cgroupsMemoryLimit will try to discover
+// the memory limit from the cgroup of the process (derived from /proc/self/cgroup),
+// or from the root cgroup path if the PID == 1 (which indicates that the process
+// is running in a container).
+//
+// Memory usage is calculated by querying the cgroup stats.
+//
+// This function will return an error immediately if the OS does not support cgroups,
+// or if another error occurs during initialization.
+func cgroupsMemoryLimit() (uint64, error) {
+ switch cgroups.Mode() {
+ case cgroups.Unified:
+ return cgroupsV2MemoryLimit()
+ case cgroups.Legacy:
+ return cgroupsV1MemoryLimit()
+ case cgroups.Unavailable:
+ fallthrough
+ default:
+ return 0, errors.New("cgroups not supported in this environment")
+ }
+}
+
+func cgroupsV1MemoryLimit() (uint64, error) {
+ // use self path unless our PID is 1, in which case we're running inside
+ // a container and our limits are in the root path.
+ path := cgroup1.NestedPath("")
+ if pid := os.Getpid(); pid == 1 {
+ path = cgroup1.RootPath
+ }
+
+ cgroup, err := cgroup1.Load(path, cgroup1.WithHiearchy(func() ([]cgroup1.Subsystem, error) {
+ system, err := cgroup1.Default()
+ if err != nil {
+ return nil, err
+ }
+ var out []cgroup1.Subsystem
+ for _, v := range system {
+ switch v.Name() {
+ case cgroup1.Memory:
+ out = append(out, v)
+ }
+ }
+ return out, nil
+ }))
+ if err != nil {
+ return 0, fmt.Errorf("failed to load cgroup1 for process: %w", err)
+ }
+
+ if stat, err := cgroup.Stat(); err != nil {
+ return 0, fmt.Errorf("failed to load memory cgroup1 stats: %w", err)
+ } else if stat.Memory == nil || stat.Memory.Usage == nil {
+ return 0, fmt.Errorf("cgroup1 memory stats are nil; aborting")
+ } else {
+ return stat.Memory.Usage.Limit, nil
+ }
+}
+
+func cgroupsV2MemoryLimit() (uint64, error) {
+ // use self path unless our PID is 1, in which case we're running inside
+ // a container and our limits are in the root path.
+ pid := os.Getpid()
+ path, err := cgroup2.PidGroupPath(pid)
+ if err != nil {
+ return 0, fmt.Errorf("failed to load cgroup2 path for process pid %d: %w", pid, err)
+ }
+
+ cgroup, err := cgroup2.Load(path)
+ if err != nil {
+ return 0, fmt.Errorf("failed to load cgroup2 for process: %w", err)
+ }
+
+ if stat, err := cgroup.Stat(); err != nil {
+ return 0, fmt.Errorf("failed to load cgroup2 memory stats: %w", err)
+ } else if stat.Memory == nil {
+ return 0, fmt.Errorf("cgroup2 memory stats are nil; aborting")
+ } else {
+ return stat.Memory.UsageLimit, nil
+ }
+}
diff --git a/erigon-lib/mmap/total_memory_cgroups_stub.go b/erigon-lib/mmap/total_memory_cgroups_stub.go
new file mode 100644
index 00000000000..0d921aa905b
--- /dev/null
+++ b/erigon-lib/mmap/total_memory_cgroups_stub.go
@@ -0,0 +1,11 @@
+//go:build !linux
+
+package mmap
+
+import (
+ "errors"
+)
+
+func cgroupsMemoryLimit() (uint64, error) {
+ return 0, errors.New("cgroups not supported in this environment")
+}
diff --git a/erigon-lib/pedersen_hash/hash.go b/erigon-lib/pedersen_hash/hash.go
index 983c2a02d5f..9182efb30a1 100644
--- a/erigon-lib/pedersen_hash/hash.go
+++ b/erigon-lib/pedersen_hash/hash.go
@@ -30,6 +30,8 @@ func Hash(input1, input2 string) (string, error) {
in1 := C.CBytes(input1Dec)
in2 := C.CBytes(input2Dec)
var o [1024]byte
+ // i dont know why it triggers here, but it's a false positive
+ // nolint:gocritic
out := C.CBytes(o[:])
upIn1 := in1
upIn2 := in2
diff --git a/erigon-lib/rlp/encodel.go b/erigon-lib/rlp/encode.go
similarity index 99%
rename from erigon-lib/rlp/encodel.go
rename to erigon-lib/rlp/encode.go
index 7e075a7b8c0..693db176aae 100644
--- a/erigon-lib/rlp/encodel.go
+++ b/erigon-lib/rlp/encode.go
@@ -186,7 +186,7 @@ func EncodeU64(i uint64, to []byte) int {
func StringLen(s []byte) int {
sLen := len(s)
switch {
- case sLen > 56:
+ case sLen >= 56:
beLen := common.BitLenToByteLen(bits.Len(uint(sLen)))
return 1 + beLen + sLen
case sLen == 0:
@@ -202,7 +202,7 @@ func StringLen(s []byte) int {
}
func EncodeString(s []byte, to []byte) int {
switch {
- case len(s) > 56:
+ case len(s) >= 56:
beLen := common.BitLenToByteLen(bits.Len(uint(len(s))))
binary.BigEndian.PutUint64(to[1:], uint64(len(s)))
_ = to[beLen+len(s)]
diff --git a/erigon-lib/rlp/encode_test.go b/erigon-lib/rlp/encode_test.go
new file mode 100644
index 00000000000..b6a27dc29e6
--- /dev/null
+++ b/erigon-lib/rlp/encode_test.go
@@ -0,0 +1,44 @@
+/*
+ Copyright 2023 The Erigon contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+package rlp
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
+ "github.com/ledgerwatch/erigon-lib/common/hexutility"
+)
+
+// Strings of length 56 are a boundary case.
+// See https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/#definition
+func TestStringLen56(t *testing.T) {
+ str := hexutility.MustDecodeHex("7907ca011864321def1e92a3021868f397516ce37c959f25f8dddd3161d7b8301152b35f135c814fae9f487206471b6b0d713cd51a2d3598")
+ require.Equal(t, 56, len(str))
+
+ strLen := StringLen(str)
+ assert.Equal(t, 56+2, strLen)
+
+ encoded := make([]byte, strLen)
+ EncodeString(str, encoded)
+
+ dataPos, dataLen, err := String(encoded, 0)
+ require.NoError(t, err)
+ assert.Equal(t, dataPos, 2)
+ assert.Equal(t, dataLen, 56)
+}
diff --git a/erigon-lib/tools/licenses_check.sh b/erigon-lib/tools/licenses_check.sh
index a9322d3b318..264c2599b25 100755
--- a/erigon-lib/tools/licenses_check.sh
+++ b/erigon-lib/tools/licenses_check.sh
@@ -32,6 +32,7 @@ output=$(find "$projectDir" -type 'd' -maxdepth 1 \
| grep -v "crawshaw.io/sqlite" `# ISC` \
| grep -v "erigon-lib/sais" `# MIT` \
| grep -v "github.com/anacrolix/go-libutp" `# MIT` \
+ | grep -v "github.com/cespare/xxhash/v2" `# MIT` \
| grep -v "github.com/anacrolix/mmsg" `# MPL-2.0` \
| grep -v "github.com/anacrolix/multiless" `# MPL-2.0` \
| grep -v "github.com/anacrolix/sync" `# MPL-2.0` \
diff --git a/erigon-lib/txpool/fetch.go b/erigon-lib/txpool/fetch.go
index 552b01c58fb..eb4c443e27b 100644
--- a/erigon-lib/txpool/fetch.go
+++ b/erigon-lib/txpool/fetch.go
@@ -436,11 +436,6 @@ func (f *Fetch) handleStateChanges(ctx context.Context, client StateChangesClien
if err != nil {
return err
}
- tx, err := f.db.BeginRo(ctx)
- if err != nil {
- return err
- }
- defer tx.Rollback()
for req, err := stream.Recv(); ; req, err = stream.Recv() {
if err != nil {
return err
@@ -448,59 +443,69 @@ func (f *Fetch) handleStateChanges(ctx context.Context, client StateChangesClien
if req == nil {
return nil
}
+ if err := f.handleStateChangesRequest(ctx, req); err != nil {
+ f.logger.Warn("[fetch] onNewBlock", "err", err)
+ }
- var unwindTxs, minedTxs types2.TxSlots
- for _, change := range req.ChangeBatch {
- if change.Direction == remote.Direction_FORWARD {
- minedTxs.Resize(uint(len(change.Txs)))
- for i := range change.Txs {
- minedTxs.Txs[i] = &types2.TxSlot{}
- if err = f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error {
- _, err := parseContext.ParseTransaction(change.Txs[i], 0, minedTxs.Txs[i], minedTxs.Senders.At(i), false /* hasEnvelope */, false /* wrappedWithBlobs */, nil)
- return err
- }); err != nil && !errors.Is(err, context.Canceled) {
- f.logger.Warn("stream.Recv", "err", err)
- continue
- }
+ if f.wg != nil { // to help tests
+ f.wg.Done()
+ }
+ }
+}
+
+func (f *Fetch) handleStateChangesRequest(ctx context.Context, req *remote.StateChangeBatch) error {
+ var unwindTxs, minedTxs types2.TxSlots
+ for _, change := range req.ChangeBatch {
+ if change.Direction == remote.Direction_FORWARD {
+ minedTxs.Resize(uint(len(change.Txs)))
+ for i := range change.Txs {
+ minedTxs.Txs[i] = &types2.TxSlot{}
+ if err := f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error {
+ _, err := parseContext.ParseTransaction(change.Txs[i], 0, minedTxs.Txs[i], minedTxs.Senders.At(i), false /* hasEnvelope */, false /* wrappedWithBlobs */, nil)
+ return err
+ }); err != nil && !errors.Is(err, context.Canceled) {
+ f.logger.Warn("[txpool.fetch] stream.Recv", "err", err)
+ continue // 1 tx handling error must not stop batch processing
}
}
- if change.Direction == remote.Direction_UNWIND {
- for i := range change.Txs {
- if err = f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error {
- utx := &types2.TxSlot{}
- sender := make([]byte, 20)
- _, err2 := parseContext.ParseTransaction(change.Txs[i], 0, utx, sender, false /* hasEnvelope */, false /* wrappedWithBlobs */, nil)
- if err2 != nil {
- return err2
+ } else if change.Direction == remote.Direction_UNWIND {
+ for i := range change.Txs {
+ if err := f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error {
+ utx := &types2.TxSlot{}
+ sender := make([]byte, 20)
+ _, err := parseContext.ParseTransaction(change.Txs[i], 0, utx, sender, false /* hasEnvelope */, false /* wrappedWithBlobs */, nil)
+ if err != nil {
+ return err
+ }
+ if utx.Type == types2.BlobTxType {
+ var knownBlobTxn *metaTx
+ //TODO: don't check `KnownBlobTxn()` here - because each call require `txpool.mutex.lock()`. Better add all hashes here and do check inside `OnNewBlock`
+ if err := f.db.View(ctx, func(tx kv.Tx) error {
+ knownBlobTxn, err = f.pool.GetKnownBlobTxn(tx, utx.IDHash[:])
+ return err
+ }); err != nil {
+ return err
}
- if utx.Type == types2.BlobTxType {
- knownBlobTxn, err2 := f.pool.GetKnownBlobTxn(tx, utx.IDHash[:])
- if err2 != nil {
- return err2
- }
- // Get the blob tx from cache; ignore altogether if it isn't there
- if knownBlobTxn != nil {
- unwindTxs.Append(knownBlobTxn.Tx, sender, false)
- }
- } else {
- unwindTxs.Append(utx, sender, false)
+ // Get the blob tx from cache; ignore altogether if it isn't there
+ if knownBlobTxn != nil {
+ unwindTxs.Append(knownBlobTxn.Tx, sender, false)
}
- return err
- }); err != nil && !errors.Is(err, context.Canceled) {
- f.logger.Warn("stream.Recv", "err", err)
- continue
+ } else {
+ unwindTxs.Append(utx, sender, false)
}
+ return nil
+ }); err != nil && !errors.Is(err, context.Canceled) {
+ f.logger.Warn("[txpool.fetch] stream.Recv", "err", err)
+ continue // 1 tx handling error must not stop batch processing
}
}
}
+ }
- if err := f.db.View(ctx, func(tx kv.Tx) error {
- return f.pool.OnNewBlock(ctx, req, unwindTxs, minedTxs, tx)
- }); err != nil && !errors.Is(err, context.Canceled) {
- f.logger.Warn("onNewBlock", "err", err)
- }
- if f.wg != nil {
- f.wg.Done()
- }
+ if err := f.db.View(ctx, func(tx kv.Tx) error {
+ return f.pool.OnNewBlock(ctx, req, unwindTxs, minedTxs, tx)
+ }); err != nil && !errors.Is(err, context.Canceled) {
+ return err
}
+ return nil
}
diff --git a/erigon-lib/txpool/pool.go b/erigon-lib/txpool/pool.go
index 83635ee097f..0f835136b51 100644
--- a/erigon-lib/txpool/pool.go
+++ b/erigon-lib/txpool/pool.go
@@ -218,6 +218,8 @@ type TxPool struct {
blockGasLimit atomic.Uint64
shanghaiTime *uint64
isPostShanghai atomic.Bool
+ agraBlock *uint64
+ isPostAgra atomic.Bool
cancunTime *uint64
isPostCancun atomic.Bool
maxBlobsPerBlock uint64
@@ -225,7 +227,7 @@ type TxPool struct {
}
func New(newTxs chan types.Announcements, coreDB kv.RoDB, cfg txpoolcfg.Config, cache kvcache.Cache,
- chainID uint256.Int, shanghaiTime, cancunTime *big.Int, maxBlobsPerBlock uint64, logger log.Logger,
+ chainID uint256.Int, shanghaiTime, agraBlock, cancunTime *big.Int, maxBlobsPerBlock uint64, logger log.Logger,
) (*TxPool, error) {
localsHistory, err := simplelru.NewLRU[string, struct{}](10_000, nil)
if err != nil {
@@ -278,6 +280,13 @@ func New(newTxs chan types.Announcements, coreDB kv.RoDB, cfg txpoolcfg.Config,
shanghaiTimeU64 := shanghaiTime.Uint64()
res.shanghaiTime = &shanghaiTimeU64
}
+ if agraBlock != nil {
+ if !agraBlock.IsUint64() {
+ return nil, errors.New("agraBlock overflow")
+ }
+ agraBlockU64 := agraBlock.Uint64()
+ res.agraBlock = &agraBlockU64
+ }
if cancunTime != nil {
if !cancunTime.IsUint64() {
return nil, errors.New("cancunTime overflow")
@@ -607,7 +616,7 @@ func (p *TxPool) best(n uint16, txs *types.TxsRlp, tx kv.Tx, onTopOf, availableG
return false, 0, nil // Too early
}
- isShanghai := p.isShanghai()
+ isShanghai := p.isShanghai() || p.isAgra()
best := p.pending.best
txs.Resize(uint(cmp.Min(int(n), len(best.ms))))
@@ -727,7 +736,7 @@ func toBlobs(_blobs [][]byte) []gokzg4844.Blob {
}
func (p *TxPool) validateTx(txn *types.TxSlot, isLocal bool, stateCache kvcache.CacheView) txpoolcfg.DiscardReason {
- isShanghai := p.isShanghai()
+ isShanghai := p.isShanghai() || p.isAgra()
if isShanghai {
if txn.DataLen > fixedgas.MaxInitCodeSize {
return txpoolcfg.InitCodeTooLarge
@@ -882,6 +891,42 @@ func (p *TxPool) isShanghai() bool {
return activated
}
+func (p *TxPool) isAgra() bool {
+ // once this flag has been set for the first time we no longer need to check the timestamp
+ set := p.isPostAgra.Load()
+ if set {
+ return true
+ }
+ if p.agraBlock == nil {
+ return false
+ }
+ agraBlock := *p.agraBlock
+
+ // a zero here means Agra is always active
+ if agraBlock == 0 {
+ p.isPostAgra.Swap(true)
+ return true
+ }
+
+ tx, err := p._chainDB.BeginRo(context.Background())
+ if err != nil {
+ return false
+ }
+ defer tx.Rollback()
+
+ head_block, err := chain.CurrentBlockNumber(tx)
+ if head_block == nil || err != nil {
+ return false
+ }
+ // A new block is built on top of the head block, so when the head is agraBlock-1,
+ // the new block should use the Agra rules.
+ activated := (*head_block + 1) >= agraBlock
+ if activated {
+ p.isPostAgra.Swap(true)
+ }
+ return activated
+}
+
func (p *TxPool) isCancun() bool {
// once this flag has been set for the first time we no longer need to check the timestamp
set := p.isPostCancun.Load()
@@ -1582,6 +1627,11 @@ func promote(pending *PendingPool, baseFee, queued *SubPool, pendingBaseFee uint
}
}
+// txMaxBroadcastSize is the max size of a transaction that will be broadcasted.
+// All transactions with a higher size will be announced and need to be fetched
+// by the peer.
+const txMaxBroadcastSize = 4 * 1024
+
// MainLoop - does:
// send pending byHash to p2p:
// - new byHash
@@ -1680,7 +1730,8 @@ func MainLoop(ctx context.Context, db kv.RwDB, coreDB kv.RoDB, p *TxPool, newTxs
localTxSizes = append(localTxSizes, size)
localTxHashes = append(localTxHashes, hash...)
- if t != types.BlobTxType { // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844
+ // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844
+ if t != types.BlobTxType {
localTxRlps = append(localTxRlps, slotRlp)
broadCastedHashes = append(broadCastedHashes, hash...)
}
@@ -1688,7 +1739,9 @@ func MainLoop(ctx context.Context, db kv.RwDB, coreDB kv.RoDB, p *TxPool, newTxs
remoteTxTypes = append(remoteTxTypes, t)
remoteTxSizes = append(remoteTxSizes, size)
remoteTxHashes = append(remoteTxHashes, hash...)
- if t != types.BlobTxType { // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844
+
+ // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844
+ if t != types.BlobTxType && len(slotRlp) < txMaxBroadcastSize {
remoteTxRlps = append(remoteTxRlps, slotRlp)
}
}
diff --git a/erigon-lib/txpool/pool_fuzz_test.go b/erigon-lib/txpool/pool_fuzz_test.go
index ebaa462f18e..e81d316910a 100644
--- a/erigon-lib/txpool/pool_fuzz_test.go
+++ b/erigon-lib/txpool/pool_fuzz_test.go
@@ -314,7 +314,7 @@ func FuzzOnNewBlocks(f *testing.F) {
cfg := txpoolcfg.DefaultConfig
sendersCache := kvcache.New(kvcache.DefaultCoherentConfig)
- pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
+ pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
assert.NoError(err)
pool.senders.senderIDs = senderIDs
for addr, id := range senderIDs {
@@ -536,7 +536,7 @@ func FuzzOnNewBlocks(f *testing.F) {
check(p2pReceived, types.TxSlots{}, "after_flush")
checkNotify(p2pReceived, types.TxSlots{}, "after_flush")
- p2, err := New(ch, coreDB, txpoolcfg.DefaultConfig, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
+ p2, err := New(ch, coreDB, txpoolcfg.DefaultConfig, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
assert.NoError(err)
p2.senders = pool.senders // senders are not persisted
err = coreDB.View(ctx, func(coreTx kv.Tx) error { return p2.fromDB(ctx, tx, coreTx) })
diff --git a/erigon-lib/txpool/pool_test.go b/erigon-lib/txpool/pool_test.go
index 1347beeb663..64aa1903da7 100644
--- a/erigon-lib/txpool/pool_test.go
+++ b/erigon-lib/txpool/pool_test.go
@@ -53,7 +53,7 @@ func TestNonceFromAddress(t *testing.T) {
cfg := txpoolcfg.DefaultConfig
sendersCache := kvcache.New(kvcache.DefaultCoherentConfig)
- pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
+ pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
assert.NoError(err)
require.True(pool != nil)
ctx := context.Background()
@@ -173,7 +173,7 @@ func TestReplaceWithHigherFee(t *testing.T) {
cfg := txpoolcfg.DefaultConfig
sendersCache := kvcache.New(kvcache.DefaultCoherentConfig)
- pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
+ pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
assert.NoError(err)
require.True(pool != nil)
ctx := context.Background()
@@ -290,7 +290,7 @@ func TestReverseNonces(t *testing.T) {
cfg := txpoolcfg.DefaultConfig
sendersCache := kvcache.New(kvcache.DefaultCoherentConfig)
- pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
+ pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
assert.NoError(err)
require.True(pool != nil)
ctx := context.Background()
@@ -417,7 +417,7 @@ func TestTxPoke(t *testing.T) {
cfg := txpoolcfg.DefaultConfig
sendersCache := kvcache.New(kvcache.DefaultCoherentConfig)
- pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
+ pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New())
assert.NoError(err)
require.True(pool != nil)
ctx := context.Background()
@@ -682,7 +682,7 @@ func TestShanghaiValidateTx(t *testing.T) {
}
cache := &kvcache.DummyCache{}
- pool, err := New(ch, coreDB, cfg, cache, *u256.N1, shanghaiTime, nil /* cancunTime */, fixedgas.DefaultMaxBlobsPerBlock, logger)
+ pool, err := New(ch, coreDB, cfg, cache, *u256.N1, shanghaiTime, nil /* agraBlock */, nil /* cancunTime */, fixedgas.DefaultMaxBlobsPerBlock, logger)
asrt.NoError(err)
ctx := context.Background()
tx, err := coreDB.BeginRw(ctx)
@@ -728,7 +728,7 @@ func TestBlobTxReplacement(t *testing.T) {
db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t)
cfg := txpoolcfg.DefaultConfig
sendersCache := kvcache.New(kvcache.DefaultCoherentConfig)
- pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, common.Big0, fixedgas.DefaultMaxBlobsPerBlock, log.New())
+ pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, common.Big0, nil, common.Big0, fixedgas.DefaultMaxBlobsPerBlock, log.New())
assert.NoError(err)
require.True(pool != nil)
ctx := context.Background()
diff --git a/erigon-lib/txpool/txpoolcfg/txpoolcfg.go b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go
index c929b22402c..31616c0807a 100644
--- a/erigon-lib/txpool/txpoolcfg/txpoolcfg.go
+++ b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go
@@ -29,24 +29,28 @@ import (
)
type Config struct {
- DBDir string
- TracedSenders []string // List of senders for which tx pool should print out debugging info
+ DBDir string
+ TracedSenders []string // List of senders for which tx pool should print out debugging info
+ PendingSubPoolLimit int
+ BaseFeeSubPoolLimit int
+ QueuedSubPoolLimit int
+ MinFeeCap uint64
+ AccountSlots uint64 // Number of executable transaction slots guaranteed per account
+ BlobSlots uint64 // Total number of blobs (not txs) allowed per account
+ PriceBump uint64 // Price bump percentage to replace an already existing transaction
+ BlobPriceBump uint64 //Price bump percentage to replace an existing 4844 blob tx (type-3)
+ OverrideCancunTime *big.Int
+
+ // regular batch tasks processing
SyncToNewPeersEvery time.Duration
ProcessRemoteTxsEvery time.Duration
CommitEvery time.Duration
LogEvery time.Duration
- PendingSubPoolLimit int
- BaseFeeSubPoolLimit int
- QueuedSubPoolLimit int
- MinFeeCap uint64
- AccountSlots uint64 // Number of executable transaction slots guaranteed per account
- BlobSlots uint64 // Total number of blobs (not txs) allowed per account
- PriceBump uint64 // Price bump percentage to replace an already existing transaction
- BlobPriceBump uint64 //Price bump percentage to replace an existing 4844 blob tx (type-3)
- OverrideCancunTime *big.Int
- MdbxPageSize datasize.ByteSize
- MdbxDBSizeLimit datasize.ByteSize
- MdbxGrowthStep datasize.ByteSize
+
+ //txpool db
+ MdbxPageSize datasize.ByteSize
+ MdbxDBSizeLimit datasize.ByteSize
+ MdbxGrowthStep datasize.ByteSize
}
var DefaultConfig = Config{
diff --git a/erigon-lib/txpool/txpooluitl/all_components.go b/erigon-lib/txpool/txpooluitl/all_components.go
index b15c78e7225..b67381f1c58 100644
--- a/erigon-lib/txpool/txpooluitl/all_components.go
+++ b/erigon-lib/txpool/txpooluitl/all_components.go
@@ -19,10 +19,10 @@ package txpooluitl
import (
"context"
"fmt"
+ "math/big"
"time"
"github.com/c2h5oh/datasize"
- mdbx2 "github.com/erigontech/mdbx-go/mdbx"
"github.com/holiman/uint256"
"github.com/ledgerwatch/log/v3"
@@ -104,7 +104,6 @@ func AllComponents(ctx context.Context, cfg txpoolcfg.Config, cache kvcache.Cach
sentryClients []direct.SentryClient, stateChangesClient txpool.StateChangesClient, logger log.Logger) (kv.RwDB, *txpool.TxPool, *txpool.Fetch, *txpool.Send, *txpool.GrpcServer, error) {
opts := mdbx.NewMDBX(log.New()).Label(kv.TxPoolDB).Path(cfg.DBDir).
WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.TxpoolTablesCfg }).
- Flags(func(f uint) uint { return f ^ mdbx2.Durable }).
WriteMergeThreshold(3 * 8192).
PageSize(uint64(16 * datasize.KB)).
GrowthStep(16 * datasize.MB).
@@ -135,12 +134,16 @@ func AllComponents(ctx context.Context, cfg txpoolcfg.Config, cache kvcache.Cach
maxBlobsPerBlock := chainConfig.GetMaxBlobsPerBlock()
shanghaiTime := chainConfig.ShanghaiTime
+ var agraBlock *big.Int
+ if chainConfig.Bor != nil {
+ agraBlock = chainConfig.Bor.AgraBlock
+ }
cancunTime := chainConfig.CancunTime
if cfg.OverrideCancunTime != nil {
cancunTime = cfg.OverrideCancunTime
}
- txPool, err := txpool.New(newTxs, chainDB, cfg, cache, *chainID, shanghaiTime, cancunTime, maxBlobsPerBlock, logger)
+ txPool, err := txpool.New(newTxs, chainDB, cfg, cache, *chainID, shanghaiTime, agraBlock, cancunTime, maxBlobsPerBlock, logger)
if err != nil {
return nil, nil, nil, nil, nil, err
}
diff --git a/erigon-lib/types/txn.go b/erigon-lib/types/txn.go
index fc0b538c61b..d7f96d78146 100644
--- a/erigon-lib/types/txn.go
+++ b/erigon-lib/types/txn.go
@@ -100,7 +100,7 @@ type TxSlot struct {
Traced bool // Whether transaction needs to be traced throughout transaction pool code and generate debug printing
Creation bool // Set to true if "To" field of the transaction is not set
Type byte // Transaction type
- Size uint32 // Size of the payload
+ Size uint32 // Size of the payload (without the RLP string envelope for typed transactions)
// EIP-4844: Shard Blob Transactions
BlobFeeCap uint256.Int // max_fee_per_blob_gas
@@ -286,7 +286,8 @@ func (ctx *TxParseContext) ParseTransaction(payload []byte, pos int, slot *TxSlo
}
}
- slot.Size = uint32(p - pos)
+ slot.Size = uint32(len(slot.Rlp))
+
return p, err
}
diff --git a/erigon-lib/types/txn_test.go b/erigon-lib/types/txn_test.go
index b5e992d493f..9d71a545e5b 100644
--- a/erigon-lib/types/txn_test.go
+++ b/erigon-lib/types/txn_test.go
@@ -194,7 +194,10 @@ func TestBlobTxParsing(t *testing.T) {
bodyRlp := hexutility.MustDecodeHex(bodyRlpHex)
hasEnvelope := true
- bodyEnvelope := hexutility.MustDecodeHex("b9012b03")
+ bodyEnvelopePrefix := hexutility.MustDecodeHex("b9012b")
+ var bodyEnvelope []byte
+ bodyEnvelope = append(bodyEnvelope, bodyEnvelopePrefix...)
+ bodyEnvelope = append(bodyEnvelope, BlobTxType)
bodyEnvelope = append(bodyEnvelope, bodyRlp...)
ctx := NewTxParseContext(*uint256.NewInt(5))
@@ -208,7 +211,7 @@ func TestBlobTxParsing(t *testing.T) {
p, err := ctx.ParseTransaction(bodyEnvelope, 0, &thinTx, nil, hasEnvelope, wrappedWithBlobs, nil)
require.NoError(t, err)
assert.Equal(t, len(bodyEnvelope), p)
- assert.Equal(t, len(bodyEnvelope), int(thinTx.Size))
+ assert.Equal(t, len(bodyEnvelope)-len(bodyEnvelopePrefix), int(thinTx.Size))
assert.Equal(t, bodyEnvelope[3:], thinTx.Rlp)
assert.Equal(t, BlobTxType, thinTx.Type)
assert.Equal(t, 2, len(thinTx.BlobHashes))
diff --git a/eth/backend.go b/eth/backend.go
index 9999e89d748..023b967eecd 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -31,6 +31,8 @@ import (
"sync"
"time"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
+ "github.com/ledgerwatch/erigon-lib/diagnostics"
"github.com/ledgerwatch/erigon-lib/downloader/downloadergrpc"
"github.com/ledgerwatch/erigon-lib/kv/kvcfg"
"github.com/ledgerwatch/erigon/cl/beacon"
@@ -38,10 +40,15 @@ import (
"github.com/ledgerwatch/erigon/cl/cltypes"
"github.com/ledgerwatch/erigon/cl/fork"
"github.com/ledgerwatch/erigon/cl/persistence"
+ clcore "github.com/ledgerwatch/erigon/cl/phase1/core"
"github.com/ledgerwatch/erigon/cl/phase1/execution_client"
+ "github.com/ledgerwatch/erigon/cl/sentinel"
+ "github.com/ledgerwatch/erigon/cl/sentinel/service"
+
"github.com/ledgerwatch/erigon/core/rawdb/blockio"
"github.com/ledgerwatch/erigon/ethdb/prune"
- "github.com/ledgerwatch/erigon/params/networkname"
+ "github.com/ledgerwatch/erigon/p2p/sentry"
+ "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client"
"github.com/ledgerwatch/erigon/turbo/builder"
"github.com/ledgerwatch/erigon/turbo/engineapi"
"github.com/ledgerwatch/erigon/turbo/engineapi/engine_block_downloader"
@@ -63,7 +70,6 @@ import (
"github.com/ledgerwatch/erigon-lib/chain"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/datadir"
- "github.com/ledgerwatch/erigon-lib/common/dir"
"github.com/ledgerwatch/erigon-lib/direct"
downloader3 "github.com/ledgerwatch/erigon-lib/downloader"
"github.com/ledgerwatch/erigon-lib/downloader/downloadercfg"
@@ -81,14 +87,11 @@ import (
"github.com/ledgerwatch/erigon-lib/txpool/txpooluitl"
types2 "github.com/ledgerwatch/erigon-lib/types"
- clcore "github.com/ledgerwatch/erigon/cl/phase1/core"
- "github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1"
+ "github.com/ledgerwatch/erigon/cmd/caplin/caplin1"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel"
- "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service"
- "github.com/ledgerwatch/erigon/cmd/sentry/sentry"
"github.com/ledgerwatch/erigon/common/debug"
+ rpcsentinel "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/bor"
"github.com/ledgerwatch/erigon/consensus/bor/finality/flags"
@@ -164,7 +167,7 @@ type Ethereum struct {
// downloader fields
sentryCtx context.Context
sentryCancel context.CancelFunc
- sentriesClient *sentry.MultiClient
+ sentriesClient *sentry_multi_client.MultiClient
sentryServers []*sentry.GrpcServer
stagedSync *stagedsync.Sync
@@ -198,7 +201,11 @@ type Ethereum struct {
kvRPC *remotedbserver.KvServer
logger log.Logger
- silkworm *silkworm.Silkworm
+ sentinel rpcsentinel.SentinelClient
+
+ silkworm *silkworm.Silkworm
+ silkwormRPCDaemonService *silkworm.RpcDaemonService
+ silkwormSentryService *silkworm.SentryService
}
func splitAddrIntoHostAndPort(addr string) (host string, port int, err error) {
@@ -284,11 +291,9 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger
logger: logger,
}
- // Check if we have an already initialized chain and fall back to
- // that if so. Otherwise we need to generate a new genesis spec.
var chainConfig *chain.Config
var genesis *types.Block
- if err := chainKv.Update(context.Background(), func(tx kv.RwTx) error {
+ if err := backend.chainDB.Update(context.Background(), func(tx kv.RwTx) error {
h, err := rawdb.ReadCanonicalHash(tx, 0)
if err != nil {
panic(err)
@@ -307,46 +312,88 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger
}); err != nil {
panic(err)
}
-
- blockReader, blockWriter, allSnapshots, agg, err := setUpBlockReader(ctx, chainKv, config.Dirs, config.Snapshot, config.HistoryV3, chainConfig.Bor != nil, logger)
- if err != nil {
- return nil, err
- }
- backend.agg, backend.blockSnapshots, backend.blockReader, backend.blockWriter = agg, allSnapshots, blockReader, blockWriter
-
backend.chainConfig = chainConfig
backend.genesisBlock = genesis
backend.genesisHash = genesis.Hash()
logger.Info("Initialised chain configuration", "config", chainConfig, "genesis", genesis.Hash())
- if err := backend.setUpSnapDownloader(ctx, config.Downloader); err != nil {
+ // Check if we have an already initialized chain and fall back to
+ // that if so. Otherwise we need to generate a new genesis spec.
+ blockReader, blockWriter, allSnapshots, agg, err := setUpBlockReader(ctx, chainKv, config.Dirs, config.Snapshot, config.HistoryV3, chainConfig.Bor != nil, logger)
+ if err != nil {
return nil, err
}
+ backend.agg, backend.blockSnapshots, backend.blockReader, backend.blockWriter = agg, allSnapshots, blockReader, blockWriter
if config.HistoryV3 {
- backend.chainDB, err = temporal.New(backend.chainDB, agg, systemcontracts.SystemContractCodeLookup[chainConfig.ChainName])
+ backend.chainDB, err = temporal.New(backend.chainDB, agg, systemcontracts.SystemContractCodeLookup[config.Genesis.Config.ChainName])
if err != nil {
return nil, err
}
- chainKv = backend.chainDB
+ chainKv = backend.chainDB //nolint
+ }
+
+ if err := backend.setUpSnapDownloader(ctx, config.Downloader); err != nil {
+ return nil, err
}
- kvRPC := remotedbserver.NewKvServer(ctx, chainKv, allSnapshots, agg, logger)
+ kvRPC := remotedbserver.NewKvServer(ctx, backend.chainDB, allSnapshots, agg, logger)
backend.notifications.StateChangesConsumer = kvRPC
backend.kvRPC = kvRPC
backend.gasPrice, _ = uint256.FromBig(config.Miner.GasPrice)
+ if config.SilkwormPath != "" {
+ backend.silkworm, err = silkworm.New(config.SilkwormPath, config.Dirs.DataDir)
+ if err != nil {
+ return nil, err
+ }
+ }
+
var sentries []direct.SentryClient
if len(stack.Config().P2P.SentryAddr) > 0 {
for _, addr := range stack.Config().P2P.SentryAddr {
- sentryClient, err := sentry.GrpcClient(backend.sentryCtx, addr)
+ sentryClient, err := sentry_multi_client.GrpcClient(backend.sentryCtx, addr)
if err != nil {
return nil, err
}
sentries = append(sentries, sentryClient)
}
+ } else if config.SilkwormSentry {
+ apiPort := 53774
+ apiAddr := fmt.Sprintf("127.0.0.1:%d", apiPort)
+ p2pConfig := stack.Config().P2P
+
+ collectNodeURLs := func(nodes []*enode.Node) []string {
+ var urls []string
+ for _, n := range nodes {
+ urls = append(urls, n.URLv4())
+ }
+ return urls
+ }
+
+ settings := silkworm.SentrySettings{
+ ClientId: p2pConfig.Name,
+ ApiPort: apiPort,
+ Port: p2pConfig.ListenPort(),
+ Nat: p2pConfig.NATSpec,
+ NetworkId: config.NetworkID,
+ NodeKey: crypto.FromECDSA(p2pConfig.PrivateKey),
+ StaticPeers: collectNodeURLs(p2pConfig.StaticNodes),
+ Bootnodes: collectNodeURLs(p2pConfig.BootstrapNodes),
+ NoDiscover: p2pConfig.NoDiscovery,
+ MaxPeers: p2pConfig.MaxPeers,
+ }
+
+ silkwormSentryService := backend.silkworm.NewSentryService(settings)
+ backend.silkwormSentryService = &silkwormSentryService
+
+ sentryClient, err := sentry_multi_client.GrpcClient(backend.sentryCtx, apiAddr)
+ if err != nil {
+ return nil, err
+ }
+ sentries = append(sentries, sentryClient)
} else {
var readNodeInfo = func() *eth.NodeInfo {
var res *eth.NodeInfo
@@ -477,13 +524,6 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger
backend.engine = ethconsensusconfig.CreateConsensusEngine(ctx, stack.Config(), chainConfig, consensusConfig, config.Miner.Notify, config.Miner.Noverify, heimdallClient, config.WithoutHeimdall, blockReader, false /* readonly */, logger)
- if config.SilkwormEnabled {
- backend.silkworm, err = silkworm.New(config.SilkwormPath)
- if err != nil {
- return nil, err
- }
- }
-
inMemoryExecution := func(batch kv.RwTx, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody,
notifications *shards.Notifications) error {
terseLogger := log.New()
@@ -528,7 +568,7 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger
}
}
- backend.sentriesClient, err = sentry.NewMultiClient(
+ backend.sentriesClient, err = sentry_multi_client.NewMultiClient(
chainKv,
stack.Config().NodeName(),
chainConfig,
@@ -799,7 +839,15 @@ func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger
if err != nil {
return nil, err
}
- go caplin1.RunCaplinPhase1(ctx, client, engine, beaconCfg, genesisCfg, state, nil, dirs, beacon.RouterConfiguration{Active: false})
+
+ backend.sentinel = client
+
+ go func() {
+ if err := caplin1.RunCaplinPhase1(ctx, client, engine, beaconCfg, genesisCfg, state, nil, dirs, beacon.RouterConfiguration{Active: false}); err != nil {
+ logger.Error("could not start caplin", "err", err)
+ }
+ ctxCancel()
+ }()
}
return backend, nil
@@ -853,12 +901,17 @@ func (s *Ethereum) Init(stack *node.Node, config *ethconfig.Config) error {
}
s.apiList = jsonrpc.APIList(chainKv, ethRpcClient, txPoolRpcClient, miningRpcClient, ff, stateCache, blockReader, s.agg, httpRpcCfg, s.engine, s.logger)
- go func() {
- if err := cli.StartRpcServer(ctx, httpRpcCfg, s.apiList, s.logger); err != nil {
- s.logger.Error(err.Error())
- return
- }
- }()
+
+ if config.SilkwormRpcDaemon && httpRpcCfg.Enabled {
+ silkwormRPCDaemonService := s.silkworm.NewRpcDaemonService(chainKv)
+ s.silkwormRPCDaemonService = &silkwormRPCDaemonService
+ } else {
+ go func() {
+ if err := cli.StartRpcServer(ctx, httpRpcCfg, s.apiList, s.logger); err != nil {
+ s.logger.Error("cli.StartRpcServer error", "err", err)
+ }
+ }()
+ }
go s.engineBackendRPC.Start(httpRpcCfg, s.chainDB, s.blockReader, ff, stateCache, s.agg, s.engine, ethRpcClient, txPoolRpcClient, miningRpcClient)
@@ -1115,7 +1168,7 @@ func (s *Ethereum) setUpSnapDownloader(ctx context.Context, downloaderCfg *downl
s.downloaderClient, err = downloadergrpc.NewClient(ctx, s.config.Snapshot.DownloaderAddr)
} else {
// start embedded Downloader
- s.downloader, err = downloader3.New(ctx, downloaderCfg, s.logger, log.LvlInfo)
+ s.downloader, err = downloader3.New(ctx, downloaderCfg, s.config.Dirs, s.logger, log.LvlDebug)
if err != nil {
return err
}
@@ -1161,7 +1214,6 @@ func setUpBlockReader(ctx context.Context, db kv.RwDB, dirs datadir.Dirs, snConf
blockReader := freezeblocks.NewBlockReader(allSnapshots, allBorSnapshots)
blockWriter := blockio.NewBlockWriter(histV3)
- dir.MustExist(dirs.SnapHistory)
agg, err := libstate.NewAggregatorV3(ctx, dirs.SnapHistory, dirs.Tmp, ethconfig.HistoryV3AggregationStep, db, logger)
if err != nil {
return nil, nil, nil, nil, err
@@ -1181,9 +1233,23 @@ func (s *Ethereum) Peers(ctx context.Context) (*remote.PeersReply, error) {
}
reply.Peers = append(reply.Peers, peers.Peers...)
}
+
return &reply, nil
}
+func (s *Ethereum) DiagnosticsPeersData() map[string]*diagnostics.PeerStatistics {
+ var reply map[string]*diagnostics.PeerStatistics = make(map[string]*diagnostics.PeerStatistics)
+ for _, sentryServer := range s.sentryServers {
+ peers := sentryServer.DiagnosticsPeersData()
+
+ for key, value := range peers {
+ reply[key] = value
+ }
+ }
+
+ return reply
+}
+
func (s *Ethereum) AddPeer(ctx context.Context, req *remote.AddPeerRequest) (*remote.AddPeerReply, error) {
for _, sentryClient := range s.sentriesClient.Sentries() {
_, err := sentryClient.AddPeer(ctx, &proto_sentry.AddPeerRequest{Url: req.Url})
@@ -1231,6 +1297,17 @@ func (s *Ethereum) Start() error {
s.engine.(*bor.Bor).Start(s.chainDB)
}
+ if s.silkwormRPCDaemonService != nil {
+ if err := s.silkwormRPCDaemonService.Start(); err != nil {
+ s.logger.Error("silkworm.StartRpcDaemon error", "err", err)
+ }
+ }
+ if s.silkwormSentryService != nil {
+ if err := s.silkwormSentryService.Start(); err != nil {
+ s.logger.Error("silkworm.SentryStart error", "err", err)
+ }
+ }
+
return nil
}
@@ -1276,7 +1353,17 @@ func (s *Ethereum) Stop() error {
}
s.chainDB.Close()
- if s.config.SilkwormEnabled {
+ if s.silkwormRPCDaemonService != nil {
+ if err := s.silkwormRPCDaemonService.Stop(); err != nil {
+ s.logger.Error("silkworm.StopRpcDaemon error", "err", err)
+ }
+ }
+ if s.silkwormSentryService != nil {
+ if err := s.silkwormSentryService.Stop(); err != nil {
+ s.logger.Error("silkworm.SentryStop error", "err", err)
+ }
+ }
+ if s.silkworm != nil {
s.silkworm.Close()
}
@@ -1303,7 +1390,7 @@ func (s *Ethereum) SentryCtx() context.Context {
return s.sentryCtx
}
-func (s *Ethereum) SentryControlServer() *sentry.MultiClient {
+func (s *Ethereum) SentryControlServer() *sentry_multi_client.MultiClient {
return s.sentriesClient
}
func (s *Ethereum) BlockIO() (services.FullBlockReader, *blockio.BlockWriter) {
@@ -1365,3 +1452,7 @@ func readCurrentTotalDifficulty(ctx context.Context, db kv.RwDB, blockReader ser
})
return currentTD, err
}
+
+func (s *Ethereum) Sentinel() rpcsentinel.SentinelClient {
+ return s.sentinel
+}
diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go
index 544437f557d..fe0000506eb 100644
--- a/eth/ethconfig/config.go
+++ b/eth/ethconfig/config.go
@@ -28,6 +28,7 @@ import (
"github.com/c2h5oh/datasize"
"github.com/ledgerwatch/erigon-lib/chain"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/downloader/downloadercfg"
@@ -39,7 +40,6 @@ import (
"github.com/ledgerwatch/erigon/eth/gasprice/gaspricecfg"
"github.com/ledgerwatch/erigon/ethdb/prune"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
)
// AggregationStep number of transactions in smallest static file
@@ -102,7 +102,8 @@ var Defaults = Config{
Produce: true,
},
- SilkwormEnabled: false,
+ // applies if SilkwormPath is set
+ SilkwormExecution: true,
}
func init() {
@@ -178,8 +179,6 @@ type Config struct {
// for nodes to connect to.
EthDiscoveryURLs []string
- P2PEnabled bool
-
Prune prune.Mode
BatchSize datasize.ByteSize // Batch size for execution stage
@@ -253,8 +252,10 @@ type Config struct {
ForcePartialCommit bool
// Embedded Silkworm support
- SilkwormEnabled bool
- SilkwormPath string
+ SilkwormPath string
+ SilkwormExecution bool
+ SilkwormRpcDaemon bool
+ SilkwormSentry bool
}
type Sync struct {
diff --git a/eth/ethconfig/estimate/esitmated_ram.go b/eth/ethconfig/estimate/esitmated_ram.go
index 573be06b861..cc8bd0bbb94 100644
--- a/eth/ethconfig/estimate/esitmated_ram.go
+++ b/eth/ethconfig/estimate/esitmated_ram.go
@@ -1,13 +1,10 @@
package estimate
import (
- "os"
- "runtime"
-
"github.com/c2h5oh/datasize"
"github.com/ledgerwatch/erigon-lib/common/cmp"
- "github.com/pbnjay/memory"
- "github.com/shirou/gopsutil/v3/docker"
+ "github.com/ledgerwatch/erigon-lib/mmap"
+ "runtime"
)
type estimatedRamPerWorker datasize.ByteSize
@@ -15,9 +12,10 @@ type estimatedRamPerWorker datasize.ByteSize
// Workers - return max workers amount based on total Memory/CPU's and estimated RAM per worker
func (r estimatedRamPerWorker) Workers() int {
// 50% of TotalMemory. Better don't count on 100% because OOM Killer may have aggressive defaults and other software may need RAM
- maxWorkersForGivenMemory := (totalMemory() / 2) / uint64(r)
+ maxWorkersForGivenMemory := (mmap.TotalMemory() / 2) / uint64(r)
return cmp.Min(AlmostAllCPUs(), int(maxWorkersForGivenMemory))
}
+
func (r estimatedRamPerWorker) WorkersHalf() int { return cmp.Max(1, r.Workers()/2) }
func (r estimatedRamPerWorker) WorkersQuarter() int { return cmp.Max(1, r.Workers()/4) }
@@ -32,29 +30,3 @@ const (
func AlmostAllCPUs() int {
return cmp.Max(1, runtime.GOMAXPROCS(-1)-1)
}
-func totalMemory() uint64 {
- mem := memory.TotalMemory()
-
- if cgroupsMemLimit, ok := cgroupsMemoryLimit(); ok {
- mem = cmp.Min(mem, cgroupsMemLimit)
- }
-
- return mem
-}
-
-// apply limit from docker if can, treat errors as "not available or maybe non-docker environment
-// supports only cgroups v1, for v2 see: https://github.com/shirou/gopsutil/issues/1416
-func cgroupsMemoryLimit() (mem uint64, ok bool) {
- hostname, err := os.Hostname()
- if err != nil {
- return 0, false
- }
- cgmem, err := docker.CgroupMemDocker(hostname)
- if err != nil {
- return 0, false
- }
- if cgmem == nil || cgmem.MemLimitInBytes <= 0 {
- return 0, false
- }
- return cgmem.MemLimitInBytes, true
-}
diff --git a/eth/ethconfig/gen_config.go b/eth/ethconfig/gen_config.go
index 5d9db0e26cb..f5432c115b4 100644
--- a/eth/ethconfig/gen_config.go
+++ b/eth/ethconfig/gen_config.go
@@ -22,7 +22,6 @@ func (c Config) MarshalTOML() (interface{}, error) {
Genesis *types.Genesis `toml:",omitempty"`
NetworkID uint64
EthDiscoveryURLs []string
- P2PEnabled bool
Prune prune.Mode
BatchSize datasize.ByteSize
ImportMode bool
@@ -47,7 +46,6 @@ func (c Config) MarshalTOML() (interface{}, error) {
enc.Genesis = c.Genesis
enc.NetworkID = c.NetworkID
enc.EthDiscoveryURLs = c.EthDiscoveryURLs
- enc.P2PEnabled = c.P2PEnabled
enc.Prune = c.Prune
enc.BatchSize = c.BatchSize
enc.ImportMode = c.ImportMode
@@ -73,7 +71,6 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error {
Genesis *types.Genesis `toml:",omitempty"`
NetworkID *uint64
EthDiscoveryURLs []string
- P2PEnabled *bool
Prune *prune.Mode
BatchSize *datasize.ByteSize
ImportMode *bool
@@ -107,9 +104,6 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error {
if dec.EthDiscoveryURLs != nil {
c.EthDiscoveryURLs = dec.EthDiscoveryURLs
}
- if dec.P2PEnabled != nil {
- c.P2PEnabled = *dec.P2PEnabled
- }
if dec.Prune != nil {
c.Prune = *dec.Prune
}
diff --git a/eth/filters/api.go b/eth/filters/api.go
index a0c0ad7e48a..c8059b02d7c 100644
--- a/eth/filters/api.go
+++ b/eth/filters/api.go
@@ -20,13 +20,13 @@ import (
"encoding/json"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/length"
ethereum "github.com/ledgerwatch/erigon"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/eth/integrity/no_gaps_in_canonical_headers.go b/eth/integrity/no_gaps_in_canonical_headers.go
new file mode 100644
index 00000000000..b5900e10e69
--- /dev/null
+++ b/eth/integrity/no_gaps_in_canonical_headers.go
@@ -0,0 +1,59 @@
+package integrity
+
+import (
+ "context"
+ "fmt"
+ "time"
+
+ "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon/core/rawdb"
+ "github.com/ledgerwatch/erigon/eth/stagedsync/stages"
+ "github.com/ledgerwatch/erigon/turbo/services"
+ "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks"
+ "github.com/ledgerwatch/log/v3"
+)
+
+func NoGapsInCanonicalHeaders(tx kv.Tx, ctx context.Context, br services.BlockReader) {
+ logEvery := time.NewTicker(10 * time.Second)
+ defer logEvery.Stop()
+
+ if err := br.(*freezeblocks.BlockReader).Integrity(ctx); err != nil {
+ panic(err)
+ }
+
+ firstBlockInDB := br.(*freezeblocks.BlockReader).FrozenBlocks() + 1
+ lastBlockNum, err := stages.GetStageProgress(tx, stages.Headers)
+ if err != nil {
+ panic(err)
+ }
+
+ for i := firstBlockInDB; i < lastBlockNum; i++ {
+ hash, err := rawdb.ReadCanonicalHash(tx, i)
+ if err != nil {
+ panic(err)
+ }
+ if hash == (common.Hash{}) {
+ err = fmt.Errorf("canonical marker not found: %d\n", i)
+ panic(err)
+ }
+ header := rawdb.ReadHeader(tx, hash, i)
+ if header == nil {
+ err = fmt.Errorf("header not found: %d\n", i)
+ panic(err)
+ }
+ body, _, _ := rawdb.ReadBody(tx, hash, i)
+ if body == nil {
+ err = fmt.Errorf("header not found: %d\n", i)
+ panic(err)
+ }
+
+ select {
+ case <-ctx.Done():
+ return
+ case <-logEvery.C:
+ log.Info("[integrity] NoGapsInCanonicalHeaders", "progress", fmt.Sprintf("%dK/%dK", i/1000, lastBlockNum/1000))
+ default:
+ }
+ }
+}
diff --git a/eth/integrity/trie.go b/eth/integrity/trie.go
index 92f4a48200f..ac6b1c7c9e6 100644
--- a/eth/integrity/trie.go
+++ b/eth/integrity/trie.go
@@ -6,13 +6,13 @@ import (
"encoding/binary"
"encoding/hex"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/bits"
"sync/atomic"
"time"
"github.com/ledgerwatch/erigon-lib/common/length"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/ethdb"
"github.com/ledgerwatch/erigon/turbo/trie"
diff --git a/eth/protocols/eth/protocol.go b/eth/protocols/eth/protocol.go
index d55f4b5b61e..1818bf25879 100644
--- a/eth/protocols/eth/protocol.go
+++ b/eth/protocols/eth/protocol.go
@@ -20,11 +20,11 @@ import (
"fmt"
"io"
"math/big"
- "math/bits"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/direct"
proto_sentry "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry"
+ rlp2 "github.com/ledgerwatch/erigon-lib/rlp"
"github.com/ledgerwatch/erigon/core/forkid"
"github.com/ledgerwatch/erigon/core/types"
@@ -250,12 +250,8 @@ type NewBlockPacket struct {
func (nbp NewBlockPacket) EncodeRLP(w io.Writer) error {
encodingSize := 0
// size of Block
- encodingSize++
blockLen := nbp.Block.EncodingSize()
- if blockLen >= 56 {
- encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(blockLen)))
- }
- encodingSize += blockLen
+ encodingSize += rlp2.ListPrefixLen(blockLen) + blockLen
// size of TD
encodingSize++
var tdBitLen, tdLen int
diff --git a/eth/stagedsync/all_stages.go b/eth/stagedsync/all_stages.go
index 24ea7b8f92d..9b2ae7d1d98 100644
--- a/eth/stagedsync/all_stages.go
+++ b/eth/stagedsync/all_stages.go
@@ -2,11 +2,11 @@ package stagedsync
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"github.com/huandu/xstrings"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/eth/stagedsync/stages"
- "github.com/ledgerwatch/erigon/metrics"
)
var syncMetrics = map[stages.SyncStage]metrics.Counter{}
diff --git a/eth/stagedsync/stage_execute.go b/eth/stagedsync/stage_execute.go
index ab602b84119..26e1b76cb4f 100644
--- a/eth/stagedsync/stage_execute.go
+++ b/eth/stagedsync/stage_execute.go
@@ -5,12 +5,14 @@ import (
"encoding/binary"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"os"
"runtime"
"time"
"github.com/c2h5oh/datasize"
"github.com/ledgerwatch/erigon-lib/kv/membatch"
+ "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb"
"github.com/ledgerwatch/log/v3"
"golang.org/x/sync/errgroup"
@@ -28,7 +30,6 @@ import (
libstate "github.com/ledgerwatch/erigon-lib/state"
"github.com/ledgerwatch/erigon/common/changeset"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core"
@@ -465,7 +466,8 @@ Loop:
writeReceipts := nextStagesExpectData || blockNum > cfg.prune.Receipts.PruneTo(to)
writeCallTraces := nextStagesExpectData || blockNum > cfg.prune.CallTraces.PruneTo(to)
- if cfg.silkworm != nil {
+ _, is_memory_mutation := tx.(*membatchwithdb.MemoryMutation)
+ if cfg.silkworm != nil && !is_memory_mutation {
blockNum, err = cfg.silkworm.ExecuteBlocks(tx, cfg.chainConfig.ChainID, blockNum, to, uint64(cfg.batchSize), writeChangeSets, writeReceipts, writeCallTraces)
} else {
err = executeBlock(block, tx, batch, cfg, *cfg.vmConfig, writeChangeSets, writeReceipts, writeCallTraces, initialCycle, stateStream, logger)
@@ -616,6 +618,8 @@ func blocksReadAheadFunc(ctx context.Context, tx kv.Tx, cfg *ExecuteBlockCfg, bl
if block == nil {
return nil
}
+ _, _ = cfg.engine.Author(block.HeaderNoCopy()) // Bor consensus: this calc is heavy and has cache
+
senders := block.Body().SendersFromTxs() //TODO: BlockByNumber can return senders
stateReader := state.NewPlainStateReader(tx) //TODO: can do on batch! if make batch thread-safe
for _, sender := range senders {
diff --git a/eth/stagedsync/stage_finish.go b/eth/stagedsync/stage_finish.go
index 39bdd191cc1..9a96e47f0e0 100644
--- a/eth/stagedsync/stage_finish.go
+++ b/eth/stagedsync/stage_finish.go
@@ -5,6 +5,7 @@ import (
"context"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"time"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -17,8 +18,6 @@ import (
"github.com/ledgerwatch/erigon/turbo/services"
"github.com/ledgerwatch/log/v3"
- common2 "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/ethdb/cbor"
@@ -161,7 +160,7 @@ func NotifyNewHeaders(ctx context.Context, finishStageBeforeSync uint64, finishS
headerHash := libcommon.BytesToHash(k[8:])
if notifyToHash == headerHash {
- headersRlp = append(headersRlp, common2.CopyBytes(headerRLP))
+ headersRlp = append(headersRlp, libcommon.CopyBytes(headerRLP))
}
return libcommon.Stopped(ctx.Done())
diff --git a/eth/stagedsync/stage_hashstate.go b/eth/stagedsync/stage_hashstate.go
index 64231c2179c..823eee4b3d5 100644
--- a/eth/stagedsync/stage_hashstate.go
+++ b/eth/stagedsync/stage_hashstate.go
@@ -7,6 +7,7 @@ import (
"encoding/hex"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"runtime"
"time"
@@ -23,8 +24,6 @@ import (
"github.com/ledgerwatch/log/v3"
"golang.org/x/sync/errgroup"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/eth/ethconfig/estimate"
@@ -340,16 +339,16 @@ func transformPlainStateKey(key []byte) ([]byte, error) {
switch len(key) {
case length.Addr:
// account
- hash, err := common.HashData(key)
+ hash, err := libcommon.HashData(key)
return hash[:], err
case length.Addr + length.Incarnation + length.Hash:
// storage
- addrHash, err := common.HashData(key[:length.Addr])
+ addrHash, err := libcommon.HashData(key[:length.Addr])
if err != nil {
return nil, err
}
inc := binary.BigEndian.Uint64(key[length.Addr:])
- secKey, err := common.HashData(key[length.Addr+length.Incarnation:])
+ secKey, err := libcommon.HashData(key[length.Addr+length.Incarnation:])
if err != nil {
return nil, err
}
@@ -367,7 +366,7 @@ func transformContractCodeKey(key []byte) ([]byte, error) {
}
address, incarnation := dbutils.PlainParseStoragePrefix(key)
- addrHash, err := common.HashData(address[:])
+ addrHash, err := libcommon.HashData(address[:])
if err != nil {
return nil, err
}
diff --git a/eth/stagedsync/stage_indexes.go b/eth/stagedsync/stage_indexes.go
index 383b01d61b9..8aeb4e6bcd4 100644
--- a/eth/stagedsync/stage_indexes.go
+++ b/eth/stagedsync/stage_indexes.go
@@ -7,6 +7,7 @@ import (
"encoding/hex"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"runtime"
"time"
@@ -24,7 +25,6 @@ import (
"golang.org/x/exp/slices"
"github.com/ledgerwatch/erigon/common/changeset"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/ethdb"
"github.com/ledgerwatch/erigon/ethdb/prune"
)
diff --git a/eth/stagedsync/stage_indexes_test.go b/eth/stagedsync/stage_indexes_test.go
index 2d9d8f847f5..dca9e0e989b 100644
--- a/eth/stagedsync/stage_indexes_test.go
+++ b/eth/stagedsync/stage_indexes_test.go
@@ -4,6 +4,8 @@ import (
"context"
"encoding/binary"
"fmt"
+ common2 "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"reflect"
"sort"
"strconv"
@@ -21,7 +23,6 @@ import (
"github.com/stretchr/testify/require"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/ethdb/prune"
@@ -284,7 +285,7 @@ func generateAddrs(numOfAddrs int, isPlain bool) ([][]byte, error) {
addrs[i] = addr.Bytes()
continue
}
- hash, err := common.HashData(addr.Bytes())
+ hash, err := common2.HashData(addr.Bytes())
if err != nil {
return nil, err
}
diff --git a/eth/stagedsync/stage_interhashes.go b/eth/stagedsync/stage_interhashes.go
index d6bdc86f179..92404c5a76d 100644
--- a/eth/stagedsync/stage_interhashes.go
+++ b/eth/stagedsync/stage_interhashes.go
@@ -5,6 +5,7 @@ import (
"context"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/bits"
"sync/atomic"
@@ -20,8 +21,6 @@ import (
"github.com/ledgerwatch/log/v3"
"golang.org/x/exp/slices"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core/types"
@@ -229,11 +228,11 @@ func (p *HashPromoter) PromoteOnHistoryV3(logPrefix string, from, to uint64, sto
if err != nil {
return err
}
- addrHash, err := common.HashData(k[:length.Addr])
+ addrHash, err := libcommon.HashData(k[:length.Addr])
if err != nil {
return err
}
- secKey, err := common.HashData(k[length.Addr:])
+ secKey, err := libcommon.HashData(k[length.Addr:])
if err != nil {
return err
}
diff --git a/eth/stagedsync/stage_interhashes_test.go b/eth/stagedsync/stage_interhashes_test.go
index 1bf48ebf452..3bf6c7faac3 100644
--- a/eth/stagedsync/stage_interhashes_test.go
+++ b/eth/stagedsync/stage_interhashes_test.go
@@ -3,6 +3,7 @@ package stagedsync_test
import (
"context"
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"testing"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -15,7 +16,6 @@ import (
"github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/params"
"github.com/ledgerwatch/erigon/turbo/trie"
@@ -91,7 +91,7 @@ func TestAccountAndStorageTrie(t *testing.T) {
accountTrieA := make(map[string][]byte)
err = tx.ForEach(kv.TrieOfAccounts, nil, func(k, v []byte) error {
- accountTrieA[string(k)] = common.CopyBytes(v)
+ accountTrieA[string(k)] = libcommon.CopyBytes(v)
return nil
})
assert.Nil(t, err)
@@ -118,7 +118,7 @@ func TestAccountAndStorageTrie(t *testing.T) {
storageTrie := make(map[string][]byte)
err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error {
- storageTrie[string(k)] = common.CopyBytes(v)
+ storageTrie[string(k)] = libcommon.CopyBytes(v)
return nil
})
assert.Nil(t, err)
@@ -141,7 +141,7 @@ func TestAccountAndStorageTrie(t *testing.T) {
// ----------------------------------------------------------------
newAddress := libcommon.HexToAddress("0x4f61f2d5ebd991b85aa1677db97307caf5215c91")
- hash4b, err := common.HashData(newAddress[:])
+ hash4b, err := libcommon.HashData(newAddress[:])
assert.Nil(t, err)
assert.Equal(t, hash4a[0], hash4b[0])
@@ -157,7 +157,7 @@ func TestAccountAndStorageTrie(t *testing.T) {
accountTrieB := make(map[string][]byte)
err = tx.ForEach(kv.TrieOfAccounts, nil, func(k, v []byte) error {
- accountTrieB[string(k)] = common.CopyBytes(v)
+ accountTrieB[string(k)] = libcommon.CopyBytes(v)
return nil
})
assert.Nil(t, err)
@@ -235,21 +235,21 @@ func TestStorageDeletion(t *testing.T) {
ctx := context.Background()
address := libcommon.HexToAddress("0x1000000000000000000000000000000000000000")
- hashedAddress, err := common.HashData(address[:])
+ hashedAddress, err := libcommon.HashData(address[:])
assert.Nil(t, err)
incarnation := uint64(1)
assert.Nil(t, addTestAccount(tx, hashedAddress, params.Ether, incarnation))
plainLocation1 := libcommon.HexToHash("0x1000000000000000000000000000000000000000000000000000000000000000")
- hashedLocation1, err := common.HashData(plainLocation1[:])
+ hashedLocation1, err := libcommon.HashData(plainLocation1[:])
assert.Nil(t, err)
plainLocation2 := libcommon.HexToHash("0x1A00000000000000000000000000000000000000000000000000000000000000")
- hashedLocation2, err := common.HashData(plainLocation2[:])
+ hashedLocation2, err := libcommon.HashData(plainLocation2[:])
assert.Nil(t, err)
plainLocation3 := libcommon.HexToHash("0x1E00000000000000000000000000000000000000000000000000000000000000")
- hashedLocation3, err := common.HashData(plainLocation3[:])
+ hashedLocation3, err := libcommon.HashData(plainLocation3[:])
assert.Nil(t, err)
value1 := common.FromHex("0xABCD")
@@ -276,7 +276,7 @@ func TestStorageDeletion(t *testing.T) {
storageTrieA := make(map[string][]byte)
err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error {
- storageTrieA[string(k)] = common.CopyBytes(v)
+ storageTrieA[string(k)] = libcommon.CopyBytes(v)
return nil
})
assert.Nil(t, err)
@@ -307,7 +307,7 @@ func TestStorageDeletion(t *testing.T) {
storageTrieB := make(map[string][]byte)
err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error {
- storageTrieB[string(k)] = common.CopyBytes(v)
+ storageTrieB[string(k)] = libcommon.CopyBytes(v)
return nil
})
assert.Nil(t, err)
@@ -319,67 +319,67 @@ func TestHiveTrieRoot(t *testing.T) {
db, tx := memdb.NewTestTx(t)
ctx := context.Background()
- hashedAddress1, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000"))
+ hashedAddress1, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress1[:],
common.FromHex("02081bc5e32fd4403800")))
- hashedAddress2, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000314"))
+ hashedAddress2, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000314"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress2[:],
common.FromHex("0c0101203e6de602146067c01322e2528a8f320c504fd3d19a4d6c4c53b54d2b2f9357ec")))
- hashedLocA, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000000"))
+ hashedLocA, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000000"))
require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress2, 1, hashedLocA),
common.FromHex("1234")))
- hashedLocB, _ := common.HashData(common.FromHex("6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9"))
+ hashedLocB, _ := libcommon.HashData(common.FromHex("6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9"))
require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress2, 1, hashedLocB),
common.FromHex("01")))
- hashedAddress3, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000315"))
+ hashedAddress3, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000315"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress3[:],
common.FromHex("0e100999999999999999999999999999999901012052de487a82a5e45f90f7fb0edf025b1d23f85c308ae7543736a91ac6295217f3")))
- hashedAddress4, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000316"))
+ hashedAddress4, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000316"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress4[:],
common.FromHex("0c010120803ac275052ba5360d44e51a7d4a49ed9156c461a21119ff650506869827f2c8")))
- hashedLocC, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000001"))
+ hashedLocC, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000001"))
require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress4, 1, hashedLocC),
common.FromHex("030000")))
- hashedAddress5, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000317"))
+ hashedAddress5, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000317"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress5[:],
common.FromHex("0c010120247c40b032c36acb07ca105280db053d204d3133302420f403dfbb54f775d0e2")))
- hashedAddress6, _ := common.HashData(common.FromHex("0161e041aad467a890839d5b08b138c1e6373072"))
+ hashedAddress6, _ := libcommon.HashData(common.FromHex("0161e041aad467a890839d5b08b138c1e6373072"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress6[:],
common.FromHex("020b0123450000000000000000")))
- hashedAddress7, _ := common.HashData(common.FromHex("6e53b788a8e675377c5f160e5c6cca6b46074af8"))
+ hashedAddress7, _ := libcommon.HashData(common.FromHex("6e53b788a8e675377c5f160e5c6cca6b46074af8"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress7[:],
common.FromHex("02081bc16d674ec80000")))
- hashedAddress8, _ := common.HashData(common.FromHex("87da6a8c6e9eff15d703fc2773e32f6af8dbe301"))
+ hashedAddress8, _ := libcommon.HashData(common.FromHex("87da6a8c6e9eff15d703fc2773e32f6af8dbe301"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress8[:],
common.FromHex("020b0123450000000000000000")))
- hashedAddress9, _ := common.HashData(common.FromHex("b97de4b8c857e4f6bc354f226dc3249aaee49209"))
+ hashedAddress9, _ := libcommon.HashData(common.FromHex("b97de4b8c857e4f6bc354f226dc3249aaee49209"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress9[:],
common.FromHex("020b0123450000000000000000")))
- hashedAddress10, _ := common.HashData(common.FromHex("c5065c9eeebe6df2c2284d046bfc906501846c51"))
+ hashedAddress10, _ := libcommon.HashData(common.FromHex("c5065c9eeebe6df2c2284d046bfc906501846c51"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress10[:],
common.FromHex("020b0123450000000000000000")))
- hashedAddress11, _ := common.HashData(common.FromHex("cf49fda3be353c69b41ed96333cd24302da4556f"))
+ hashedAddress11, _ := libcommon.HashData(common.FromHex("cf49fda3be353c69b41ed96333cd24302da4556f"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress11[:],
common.FromHex("0301010b012344fffb67ea09bf8000")))
- hashedAddress12, _ := common.HashData(common.FromHex("e0840414c530d72e5c2f1fe64f6311cc3136cab1"))
+ hashedAddress12, _ := libcommon.HashData(common.FromHex("e0840414c530d72e5c2f1fe64f6311cc3136cab1"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress12[:],
common.FromHex("02081bc16d674ec80000")))
- hashedAddress13, _ := common.HashData(common.FromHex("f8e0e7f6f1d0514ddfbc00bec204641f1f4d8cc8"))
+ hashedAddress13, _ := libcommon.HashData(common.FromHex("f8e0e7f6f1d0514ddfbc00bec204641f1f4d8cc8"))
require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress13[:],
common.FromHex("02081bc16d674ec80000")))
@@ -392,7 +392,7 @@ func TestHiveTrieRoot(t *testing.T) {
// Now add a new account
newAddress := libcommon.HexToAddress("0xf76fefb6608ca3d826945a9571d1f8e53bb6f366")
- newHash, err := common.HashData(newAddress[:])
+ newHash, err := libcommon.HashData(newAddress[:])
require.Nil(t, err)
require.Nil(t, tx.Put(kv.HashedAccounts, newHash[:], common.FromHex("02081bc16d674ec80000")))
diff --git a/eth/stagedsync/stage_log_index.go b/eth/stagedsync/stage_log_index.go
index 0f10c1b576b..1c7e3f01208 100644
--- a/eth/stagedsync/stage_log_index.go
+++ b/eth/stagedsync/stage_log_index.go
@@ -5,6 +5,7 @@ import (
"context"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"runtime"
"time"
@@ -19,7 +20,6 @@ import (
"github.com/ledgerwatch/log/v3"
"golang.org/x/exp/slices"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/ethdb/cbor"
"github.com/ledgerwatch/erigon/ethdb/prune"
diff --git a/eth/stagedsync/stage_senders.go b/eth/stagedsync/stage_senders.go
index fb1f271a2ba..0993e67fa7e 100644
--- a/eth/stagedsync/stage_senders.go
+++ b/eth/stagedsync/stage_senders.go
@@ -5,6 +5,7 @@ import (
"encoding/binary"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math"
"sync"
"time"
@@ -21,7 +22,6 @@ import (
"github.com/ledgerwatch/log/v3"
"github.com/ledgerwatch/secp256k1"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/common/debug"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
diff --git a/eth/stagedsync/stage_snapshots.go b/eth/stagedsync/stage_snapshots.go
index 0ea782fba3f..3da1d60ba74 100644
--- a/eth/stagedsync/stage_snapshots.go
+++ b/eth/stagedsync/stage_snapshots.go
@@ -120,7 +120,7 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R
return nil
}
- if err := snapshotsync.WaitForDownloader(s.LogPrefix(), ctx, cfg.historyV3, cfg.agg, tx, cfg.blockReader, cfg.dbEventNotifier, &cfg.chainConfig, cfg.snapshotDownloader); err != nil {
+ if err := snapshotsync.WaitForDownloader(s.LogPrefix(), ctx, cfg.historyV3, snapshotsync.NoCaplin, cfg.agg, tx, cfg.blockReader, cfg.dbEventNotifier, &cfg.chainConfig, cfg.snapshotDownloader); err != nil {
return err
}
@@ -314,12 +314,16 @@ func SnapshotsPrune(s *PruneState, initialCycle bool, cfg SnapshotsCfg, ctx cont
}
cfg.blockRetire.RetireBlocksInBackground(ctx, s.ForwardProgress, cfg.chainConfig.Bor != nil, log.LvlInfo, func(downloadRequest []services.DownloadRequest) error {
- if cfg.snapshotDownloader != nil && !reflect.ValueOf(cfg.snapshotDownloader).IsNil() {
- if err := snapshotsync.RequestSnapshotsDownload(ctx, downloadRequest, cfg.snapshotDownloader); err != nil {
- return err
- }
+ if cfg.snapshotDownloader == nil || reflect.ValueOf(cfg.snapshotDownloader).IsNil() {
+ return nil
}
- return nil
+ return snapshotsync.RequestSnapshotsDownload(ctx, downloadRequest, cfg.snapshotDownloader)
+ }, func(l []string) error {
+ if cfg.snapshotDownloader == nil || reflect.ValueOf(cfg.snapshotDownloader).IsNil() {
+ return nil
+ }
+ _, err := cfg.snapshotDownloader.Delete(ctx, &proto_downloader.DeleteRequest{Paths: l})
+ return err
})
//cfg.agg.BuildFilesInBackground()
}
diff --git a/eth/stagedsync/testutil.go b/eth/stagedsync/testutil.go
index 28ce1bf2169..812eba9a508 100644
--- a/eth/stagedsync/testutil.go
+++ b/eth/stagedsync/testutil.go
@@ -9,7 +9,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
state2 "github.com/ledgerwatch/erigon-lib/state"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/state"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/eth/ethconfig"
@@ -167,7 +166,7 @@ func generateBlocks2(t *testing.T, from uint64, numberOfBlocks uint64, blockWrit
if blockNumber == 1 || updateIncarnation || difficulty == changeCodeIndepenentlyOfIncarnations {
if newAcc.Incarnation > 0 {
code := []byte(fmt.Sprintf("acc-code-%v", blockNumber))
- codeHash, _ := common.HashData(code)
+ codeHash, _ := libcommon.HashData(code)
if blockNumber >= from {
if err := blockWriter.UpdateAccountCode(addr, newAcc.Incarnation, codeHash, code); err != nil {
t.Fatal(err)
@@ -238,7 +237,7 @@ func generateBlocks(t *testing.T, from uint64, numberOfBlocks uint64, stateWrite
if blockNumber == 1 || updateIncarnation || difficulty == changeCodeIndepenentlyOfIncarnations {
if newAcc.Incarnation > 0 {
code := []byte(fmt.Sprintf("acc-code-%v", blockNumber))
- codeHash, _ := common.HashData(code)
+ codeHash, _ := libcommon.HashData(code)
if blockNumber >= from {
if err := blockWriter.UpdateAccountCode(addr, newAcc.Incarnation, codeHash, code); err != nil {
t.Fatal(err)
diff --git a/eth/tracers/internal/tracetest/calltrace_test.go b/eth/tracers/internal/tracetest/calltrace_test.go
index 625e27d6f04..30c4c23ad35 100644
--- a/eth/tracers/internal/tracetest/calltrace_test.go
+++ b/eth/tracers/internal/tracetest/calltrace_test.go
@@ -18,6 +18,7 @@ package tracetest
import (
"encoding/json"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"os"
"path/filepath"
@@ -29,7 +30,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/types"
diff --git a/eth/tracers/js/goja.go b/eth/tracers/js/goja.go
index 0ff07151ffa..ac794316448 100644
--- a/eth/tracers/js/goja.go
+++ b/eth/tracers/js/goja.go
@@ -316,7 +316,7 @@ func (t *jsTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libcom
t.frame.typ = typ.String()
t.frame.from = from
t.frame.to = to
- t.frame.input = common.CopyBytes(input)
+ t.frame.input = libcommon.CopyBytes(input)
t.frame.gas = uint(gas)
t.frame.value = nil
if value != nil {
@@ -336,7 +336,7 @@ func (t *jsTracer) CaptureExit(output []byte, gasUsed uint64, err error) {
}
t.frameResult.gasUsed = uint(gasUsed)
- t.frameResult.output = common.CopyBytes(output)
+ t.frameResult.output = libcommon.CopyBytes(output)
t.frameResult.err = err
if _, err := t.exit(t.obj, t.frameResultValue); err != nil {
@@ -446,7 +446,7 @@ func (t *jsTracer) setBuiltinFunctions() {
vm.Interrupt(err)
return nil
}
- code = common.CopyBytes(code)
+ code = libcommon.CopyBytes(code)
codeHash := crypto.Keccak256(code)
b := crypto.CreateAddress2(addr, libcommon.HexToHash(salt), codeHash).Bytes()
res, err := t.toBuf(vm, b)
@@ -792,7 +792,7 @@ func (co *contractObj) GetValue() goja.Value {
}
func (co *contractObj) GetInput() goja.Value {
- input := common.CopyBytes(co.contract.Input)
+ input := libcommon.CopyBytes(co.contract.Input)
res, err := co.toBuf(co.vm, input)
if err != nil {
co.vm.Interrupt(err)
diff --git a/eth/tracers/native/call.go b/eth/tracers/native/call.go
index 0c210c8790b..7e994337e5b 100644
--- a/eth/tracers/native/call.go
+++ b/eth/tracers/native/call.go
@@ -22,12 +22,12 @@ import (
"math/big"
"sync/atomic"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon/accounts/abi"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/core/vm"
"github.com/ledgerwatch/erigon/eth/tracers"
@@ -72,7 +72,7 @@ func (f callFrame) failed() bool {
}
func (f *callFrame) processOutput(output []byte, err error) {
- output = common.CopyBytes(output)
+ output = libcommon.CopyBytes(output)
if err == nil {
f.Output = output
return
@@ -139,7 +139,7 @@ func (t *callTracer) CaptureStart(from libcommon.Address, to libcommon.Address,
Type: vm.CALL,
From: from,
To: to,
- Input: common.CopyBytes(input),
+ Input: libcommon.CopyBytes(input),
Gas: gas,
}
if value != nil {
@@ -148,15 +148,11 @@ func (t *callTracer) CaptureStart(from libcommon.Address, to libcommon.Address,
if create {
t.callstack[0].Type = vm.CREATE
}
- t.logIndex = 0
- t.logGaps = make(map[uint64]int)
}
// CaptureEnd is called after the call finishes to finalize the tracing.
func (t *callTracer) CaptureEnd(output []byte, gasUsed uint64, err error) {
t.callstack[0].processOutput(output, err)
- t.logIndex = 0
- t.logGaps = nil
}
// CaptureState implements the EVMLogger interface to trace a single step of VM execution.
@@ -178,7 +174,7 @@ func (t *callTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libc
Type: typ,
From: from,
To: toCopy,
- Input: common.CopyBytes(input),
+ Input: libcommon.CopyBytes(input),
Gas: gas,
Value: value.ToBig(),
}
@@ -222,6 +218,8 @@ func (t *callTracer) CaptureTxEnd(receipt *types.Receipt, err error) {
clearFailedLogs(&t.callstack[0], false, 0, t.logGaps)
fixLogIndexGap(&t.callstack[0], t.logGaps)
}
+ t.logIndex = 0
+ t.logGaps = nil
}
func (t *callTracer) OnLog(log *types.Log) {
@@ -269,7 +267,7 @@ func clearFailedLogs(cf *callFrame, parentFailed bool, gap int, logGaps map[uint
gap += len(cf.Logs)
if gap > 0 {
lastIdx := len(cf.Logs) - 1
- if lastIdx > 0 {
+ if lastIdx > 0 && logGaps != nil {
idx := cf.Logs[lastIdx].Index
logGaps[idx] = gap
}
diff --git a/eth/tracers/native/gen_account_json.go b/eth/tracers/native/gen_account_json.go
index d4f00b2a4e2..4a016137f38 100644
--- a/eth/tracers/native/gen_account_json.go
+++ b/eth/tracers/native/gen_account_json.go
@@ -4,12 +4,11 @@ package native
import (
"encoding/json"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
var _ = (*accountMarshaling)(nil)
diff --git a/eth/tracers/native/gen_callframe_json.go b/eth/tracers/native/gen_callframe_json.go
index 9a49f0f7cc5..8dbba5c07a7 100644
--- a/eth/tracers/native/gen_callframe_json.go
+++ b/eth/tracers/native/gen_callframe_json.go
@@ -4,12 +4,12 @@ package native
import (
"encoding/json"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/vm"
)
diff --git a/eth/tracers/native/prestate.go b/eth/tracers/native/prestate.go
index 1a5bf786989..8b1f03c9455 100644
--- a/eth/tracers/native/prestate.go
+++ b/eth/tracers/native/prestate.go
@@ -23,12 +23,13 @@ import (
"math/big"
"sync/atomic"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/core/vm"
"github.com/ledgerwatch/erigon/crypto"
diff --git a/eth/tracers/tracers_test.go b/eth/tracers/tracers_test.go
index 51daf404233..cc3e29146cf 100644
--- a/eth/tracers/tracers_test.go
+++ b/eth/tracers/tracers_test.go
@@ -20,11 +20,11 @@ import (
"crypto/ecdsa"
"crypto/rand"
"encoding/json"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"testing"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/core/vm"
diff --git a/ethdb/privateapi/mining.go b/ethdb/privateapi/mining.go
index 414fb9891e7..0413b2b957f 100644
--- a/ethdb/privateapi/mining.go
+++ b/ethdb/privateapi/mining.go
@@ -4,6 +4,7 @@ import (
"bytes"
"context"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"sync"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -12,7 +13,6 @@ import (
"github.com/ledgerwatch/log/v3"
"google.golang.org/protobuf/types/known/emptypb"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/consensus/ethash"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go
index 45f67ab8de2..a2556f9b551 100644
--- a/ethstats/ethstats.go
+++ b/ethstats/ethstats.go
@@ -37,12 +37,12 @@ import (
"github.com/ledgerwatch/erigon/turbo/services"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/cmd/sentry/sentry"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/eth/stagedsync/stages"
"github.com/ledgerwatch/erigon/node"
+ "github.com/ledgerwatch/erigon/p2p/sentry"
)
const (
diff --git a/go.mod b/go.mod
index f2685c6d6f8..c004d8dd12c 100644
--- a/go.mod
+++ b/go.mod
@@ -1,11 +1,10 @@
module github.com/ledgerwatch/erigon
-go 1.19
+go 1.20
require (
- github.com/erigontech/mdbx-go v0.27.17
+ github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed
github.com/ledgerwatch/erigon-lib v1.0.0
- github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231014011414-bfa3a30f55b2
github.com/ledgerwatch/log/v3 v3.9.0
github.com/ledgerwatch/secp256k1 v1.0.0
)
@@ -13,13 +12,14 @@ require (
replace github.com/ledgerwatch/erigon-lib => ./erigon-lib
require (
- gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586
+ gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c
github.com/99designs/gqlgen v0.17.33
github.com/Giulio2002/bls v0.0.0-20230906201036-c2330c97dc7d
github.com/RoaringBitmap/roaring v1.2.3
github.com/VictoriaMetrics/fastcache v1.12.1
github.com/VictoriaMetrics/metrics v1.23.1
github.com/alecthomas/kong v0.8.0
+ github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4
github.com/anacrolix/sync v0.4.0
github.com/anacrolix/torrent v1.52.6-0.20230926121951-11833b45cfbe
github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b
@@ -27,7 +27,7 @@ require (
github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b
github.com/consensys/gnark-crypto v0.12.1
github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc
- github.com/crate-crypto/go-kzg-4844 v0.3.0
+ github.com/crate-crypto/go-kzg-4844 v0.7.0
github.com/davecgh/go-spew v1.1.1
github.com/deckarep/golang-set v1.8.0
github.com/deckarep/golang-set/v2 v2.3.1
@@ -63,20 +63,16 @@ require (
github.com/maticnetwork/polyproto v0.0.3-0.20230216113155-340ea926ca53
github.com/multiformats/go-multiaddr v0.11.0
github.com/nxadm/tail v1.4.9-0.20211216163028-4472660a31a6
- github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
github.com/pelletier/go-toml v1.9.5
github.com/pelletier/go-toml/v2 v2.1.0
+ github.com/pierrec/lz4 v2.6.1+incompatible
github.com/pion/randutil v0.1.0
github.com/pion/stun v0.6.0
- github.com/prometheus/client_golang v1.17.0
- github.com/prometheus/client_model v0.5.0
- github.com/prometheus/common v0.44.0
github.com/protolambda/ztyp v0.2.2
github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7
- github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a
+ github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202
github.com/quasilyte/go-ruleguard/dsl v0.3.22
github.com/rs/cors v1.10.1
- github.com/shirou/gopsutil/v3 v3.23.8
github.com/spf13/afero v1.9.5
github.com/spf13/cobra v1.7.0
github.com/spf13/pflag v1.0.5
@@ -96,7 +92,7 @@ require (
golang.org/x/sync v0.4.0
golang.org/x/sys v0.13.0
golang.org/x/time v0.3.0
- google.golang.org/grpc v1.58.3
+ google.golang.org/grpc v1.59.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0
google.golang.org/protobuf v1.31.0
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
@@ -116,7 +112,6 @@ require (
github.com/anacrolix/envpprof v1.3.0 // indirect
github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45 // indirect
github.com/anacrolix/go-libutp v1.3.1 // indirect
- github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 // indirect
github.com/anacrolix/missinggo v1.3.0 // indirect
github.com/anacrolix/missinggo/perf v1.0.0 // indirect
github.com/anacrolix/missinggo/v2 v2.7.2-0.20230527121029-a582b4f397b9 // indirect
@@ -125,6 +120,24 @@ require (
github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496 // indirect
github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect
github.com/anacrolix/utp v0.1.0 // indirect
+ github.com/aws/aws-sdk-go-v2 v1.21.2 // indirect
+ github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 // indirect
+ github.com/aws/aws-sdk-go-v2/config v1.19.0 // indirect
+ github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect
+ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 // indirect
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect
+ github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect
+ github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect
+ github.com/aws/smithy-go v1.15.0 // indirect
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/benbjohnson/clock v1.3.5 // indirect
github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect
@@ -133,8 +146,10 @@ require (
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
+ github.com/cilium/ebpf v0.9.1 // indirect
github.com/consensys/bavard v0.1.13 // indirect
github.com/containerd/cgroups v1.1.0 // indirect
+ github.com/containerd/cgroups/v3 v3.0.2 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
@@ -151,7 +166,6 @@ require (
github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-ole/go-ole v1.2.6 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
@@ -172,6 +186,7 @@ require (
github.com/koron/go-ssdp v0.0.4 // indirect
github.com/kr/pretty v0.3.1 // indirect
github.com/kr/text v0.2.0 // indirect
+ github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46 // indirect
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
github.com/libp2p/go-cidranger v1.1.0 // indirect
github.com/libp2p/go-flow-metrics v0.1.0 // indirect
@@ -182,7 +197,6 @@ require (
github.com/libp2p/go-netroute v0.2.1 // indirect
github.com/libp2p/go-reuseport v0.4.0 // indirect
github.com/libp2p/go-yamux/v4 v4.0.1 // indirect
- github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
@@ -209,6 +223,7 @@ require (
github.com/multiformats/go-varint v0.0.7 // indirect
github.com/onsi/ginkgo/v2 v2.11.0 // indirect
github.com/opencontainers/runtime-spec v1.1.0 // indirect
+ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
github.com/pion/datachannel v1.5.2 // indirect
github.com/pion/dtls/v2 v2.2.7 // indirect
github.com/pion/ice/v2 v2.2.6 // indirect
@@ -226,7 +241,9 @@ require (
github.com/pion/webrtc/v3 v3.1.42 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
+ github.com/prometheus/client_golang v1.17.0 // indirect
+ github.com/prometheus/client_model v0.5.0 // indirect
+ github.com/prometheus/common v0.44.0 // indirect
github.com/prometheus/procfs v0.11.1 // indirect
github.com/quic-go/qpack v0.4.0 // indirect
github.com/quic-go/qtls-go1-20 v0.3.3 // indirect
@@ -238,15 +255,12 @@ require (
github.com/rogpeppe/go-internal v1.10.0 // indirect
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
- github.com/shoenig/go-m1cpu v0.1.6 // indirect
+ github.com/sirupsen/logrus v1.9.0 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/supranational/blst v0.3.11 // indirect
- github.com/tklauser/go-sysconf v0.3.12 // indirect
- github.com/tklauser/numcpus v0.6.1 // indirect
github.com/valyala/fastrand v1.1.0 // indirect
github.com/valyala/histogram v1.2.0 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
- github.com/yusufpapurcu/wmi v1.2.3 // indirect
go.etcd.io/bbolt v1.3.6 // indirect
go.opentelemetry.io/otel v1.8.0 // indirect
go.opentelemetry.io/otel/trace v1.8.0 // indirect
@@ -256,7 +270,7 @@ require (
golang.org/x/mod v0.13.0 // indirect
golang.org/x/text v0.13.0 // indirect
golang.org/x/tools v0.14.0 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
lukechampine.com/blake3 v1.2.1 // indirect
lukechampine.com/uint128 v1.3.0 // indirect
diff --git a/go.sum b/go.sum
index 8116dee3f09..e64dfc0bff6 100644
--- a/go.sum
+++ b/go.sum
@@ -46,8 +46,8 @@ dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBr
dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4=
dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU=
filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU=
-gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586 h1:dlvliDuuuI3E+HtVeZVQgKuGcf0fGNNNadt04fgTyX8=
-gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586/go.mod h1:WvSX4JsCRBuIXj0FRBFX9YLg+2SoL3w8Ww19uZO9yNE=
+gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c h1:alCfDKmPC0EC0KGlZWrNF0hilVWBkzMz+aAYTJ/2hY4=
+gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c/go.mod h1:WvSX4JsCRBuIXj0FRBFX9YLg+2SoL3w8Ww19uZO9yNE=
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
github.com/99designs/gqlgen v0.17.33 h1:VTUpAtElDszatPSe26N0SD0deJCSxb7TZLlUb6JnVRY=
github.com/99designs/gqlgen v0.17.33/go.mod h1:ygDK+m8zGpoQuSh8xoq80UfisR5JTZr7mN57qXlSIZs=
@@ -141,6 +141,42 @@ github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYU
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=
+github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA=
+github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 h1:Sc82v7tDQ/vdU1WtuSyzZ1I7y/68j//HJ6uozND1IDs=
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY=
+github.com/aws/aws-sdk-go-v2/config v1.19.0 h1:AdzDvwH6dWuVARCl3RTLGRc4Ogy+N7yLFxVxXe1ClQ0=
+github.com/aws/aws-sdk-go-v2/config v1.19.0/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE=
+github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8=
+github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4=
+github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 h1:wmGLw2i8ZTlHLw7a9ULGfQbuccw8uIiNr6sol5bFzc8=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6/go.mod h1:Q0Hq2X/NuL7z8b1Dww8rmOFl+jzusKEcyvkKspwdpyc=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 h1:7R8uRYyXzdD71KWVCL78lJZltah6VVznXBazvKjfH58=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 h1:skaFGzv+3kA+v2BPKhuekeb1Hbb105+44r8ASC+q5SE=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38/go.mod h1:epIZoRSSbRIwLPJU5F+OldHhwZPBdpDeQkRdCeY3+00=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 h1:9ulSU5ClouoPIYhDQdg9tpl83d5Yb91PXTKK+17q+ow=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6/go.mod h1:lnc2taBsR9nTlz9meD+lhFZZ9EWY712QHrRflWpTcOA=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 h1:Ll5/YVCOzRB+gxPqs2uD0R7/MyATC0w85626glSKmp4=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ=
+github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k=
+github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg=
+github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU=
+github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ=
+github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8=
+github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk=
github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
@@ -179,6 +215,8 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
+github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4=
+github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
@@ -190,6 +228,8 @@ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5U
github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
+github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0=
+github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE=
github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
@@ -200,8 +240,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHH
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc h1:mtR7MuscVeP/s0/ERWA2uSr5QOrRYy1pdvZqG1USfXI=
github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc/go.mod h1:gFnFS95y8HstDP6P9pPwzrxOOC5TRDkwbM+ao15ChAI=
-github.com/crate-crypto/go-kzg-4844 v0.3.0 h1:UBlWE0CgyFqqzTI+IFyCzA7A3Zw4iip6uzRv5NIXG0A=
-github.com/crate-crypto/go-kzg-4844 v0.3.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4=
+github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA=
+github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -248,8 +288,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/erigontech/mdbx-go v0.27.17 h1:+LOuGmdrD74psBVHDaS3cFXzI9tTSfLcUvOUtMwX2Ok=
-github.com/erigontech/mdbx-go v0.27.17/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4=
+github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed h1:i1xZSrLxifCa0nabPeTxma9/3hqPSRmvqwWqad8rLVM=
+github.com/erigontech/mdbx-go v0.35.2-0.20231101074031-9f999220e9ed/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4=
github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c h1:CndMRAH4JIwxbW8KYq6Q+cGWcGHz0FjGR3QqcInWcW0=
github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
@@ -297,8 +337,6 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
-github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
@@ -374,9 +412,8 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
@@ -461,6 +498,8 @@ github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPw
github.com/jedib0t/go-pretty/v6 v6.4.7 h1:lwiTJr1DEkAgzljsUsORmWsVn5MQjt1BPJdPCtJ6KXE=
github.com/jedib0t/go-pretty/v6 v6.4.7/go.mod h1:Ndk3ase2CkQbXLLNf5QDHoYb6J9WtVfmHZu9n8rk2xs=
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
+github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
@@ -500,8 +539,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v0.0.0-20170224010052-a616ab194758 h1:0D5M2HQSGD3PYPwICLl+/9oulQauOuETfgFvhBDffs0=
github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c=
github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8=
-github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231014011414-bfa3a30f55b2 h1:p6WVs6M6N6QhIK6pIS3c7CSVUgvCx2XIKz9Fdak1ADA=
-github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231014011414-bfa3a30f55b2/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo=
+github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46 h1:yt3/AcefMQOzY/P05jyeaKpqMQvrCbL6OJWALsjKp5U=
+github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231102060711-19219b948f46/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo=
github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk=
github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE=
github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ=
@@ -535,8 +574,6 @@ github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQsc
github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8Se6DrI2E1cLU=
github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ=
github.com/libp2p/go-yamux/v4 v4.0.1/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4=
-github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
-github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk=
@@ -647,6 +684,8 @@ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6
github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
+github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E=
github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ=
github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus=
@@ -698,8 +737,6 @@ github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdL
github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw=
-github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
@@ -732,8 +769,8 @@ github.com/protolambda/ztyp v0.2.2 h1:rVcL3vBu9W/aV646zF6caLS/dyn9BN8NYiuJzicLNy
github.com/protolambda/ztyp v0.2.2/go.mod h1:9bYgKGqg3wJqT9ac1gI2hnVb0STQq7p/1lapqrqY1dU=
github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 h1:0tVE4tdWQK9ZpYygoV7+vS6QkDvQVySboMVEIxBJmXw=
github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7/go.mod h1:wmuf/mdK4VMD+jA9ThwcUKjg3a2XWM9cVfFYjDyY4j4=
-github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a h1:po9GKr5APkGj8blcsaPYj/EBlZbvCmoKE/oGLZE+PNI=
-github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a/go.mod h1:4pWaT30XoEx1j8KNJf3TV+E3mQkaufn7mf+jRNb/Fuk=
+github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202 h1:ZsFouPKy81vvQo/Zup5gASVdOm6aiuwUhp7GxvQmjIA=
+github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202/go.mod h1:4pWaT30XoEx1j8KNJf3TV+E3mQkaufn7mf+jRNb/Fuk=
github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE=
github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU=
github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo=
@@ -771,12 +808,6 @@ github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZ
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
-github.com/shirou/gopsutil/v3 v3.23.8 h1:xnATPiybo6GgdRoC4YoGnxXZFRc3dqQTGi73oLvvBrE=
-github.com/shirou/gopsutil/v3 v3.23.8/go.mod h1:7hmCaBn+2ZwaZOr6jmPBZDfawwMGuo1id3C6aM8EDqQ=
-github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
-github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
-github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
-github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k=
github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=
github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM=
github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0=
@@ -803,6 +834,8 @@ github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5k
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
+github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
+github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
@@ -844,10 +877,6 @@ github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EU
github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=
-github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
-github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
-github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
-github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
github.com/ugorji/go v1.1.13/go.mod h1:jxau1n+/wyTGLQoCkjok9r5zFa/FxT6eI5HiHKQszjc=
github.com/ugorji/go/codec v1.1.13 h1:013LbFhocBoIqgHeIHKlV4JWYhqogATYWZhIcH0WHn4=
github.com/ugorji/go/codec v1.1.13/go.mod h1:oNVt3Dq+FO91WNQ/9JnHKQP2QJxTzoN7wCBFCq1OeuU=
@@ -878,8 +907,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=
-github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU=
go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4=
go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
@@ -1074,7 +1101,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1103,7 +1129,6 @@ golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1121,13 +1146,13 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -1290,8 +1315,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
@@ -1311,8 +1336,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ=
-google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
+google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
+google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
diff --git a/migrations/migrations.go b/migrations/migrations.go
index d69e523bcf9..9f734d1ac9e 100644
--- a/migrations/migrations.go
+++ b/migrations/migrations.go
@@ -4,11 +4,11 @@ import (
"bytes"
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common"
"path/filepath"
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/eth/stagedsync/stages"
"github.com/ledgerwatch/log/v3"
diff --git a/migrations/txs_begin_end.go b/migrations/txs_begin_end.go
index bae1019f259..f2063bd4ac1 100644
--- a/migrations/txs_begin_end.go
+++ b/migrations/txs_begin_end.go
@@ -16,7 +16,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/eth/stagedsync/stages"
@@ -238,7 +237,7 @@ func writeTransactionsNewDeprecated(db kv.RwTx, txs []types.Transaction, baseTxI
return fmt.Errorf("broken tx rlp: %w", err)
}
// If next Append returns KeyExists error - it means you need to open transaction in App code before calling this func. Batch is also fine.
- if err := db.Put(kv.EthTx, txIdKey, common.CopyBytes(buf.Bytes())); err != nil {
+ if err := db.Put(kv.EthTx, txIdKey, common2.CopyBytes(buf.Bytes())); err != nil {
return err
}
txId++
diff --git a/migrations/txs_v3.go b/migrations/txs_v3.go
index 6047585626d..f34789f3591 100644
--- a/migrations/txs_v3.go
+++ b/migrations/txs_v3.go
@@ -14,7 +14,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/rawdb"
)
@@ -66,7 +65,7 @@ var TxsV3 = Migration{
}
// Copying k because otherwise the same memory will be reused
// for the next key and Delete below will end up deleting 1 more record than required
- kCopy := common.CopyBytes(k)
+ kCopy := common2.CopyBytes(k)
if err = tx.Delete(kv.Senders, kCopy); err != nil {
return err
}
diff --git a/migrations/txs_v3_test.go b/migrations/txs_v3_test.go
index 50ac319f12a..5d3071400c7 100644
--- a/migrations/txs_v3_test.go
+++ b/migrations/txs_v3_test.go
@@ -5,6 +5,7 @@ import (
"context"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/big"
"testing"
"time"
@@ -14,7 +15,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/u256"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/memdb"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/migrations"
"github.com/ledgerwatch/erigon/rlp"
"github.com/ledgerwatch/log/v3"
diff --git a/node/endpoints.go b/node/endpoints.go
index 3855b6dc8d3..5a2a1051735 100644
--- a/node/endpoints.go
+++ b/node/endpoints.go
@@ -19,29 +19,102 @@ package node
import (
"context"
"errors"
+ "fmt"
"net"
"net/http"
+ "net/url"
"time"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/rpc/rpccfg"
"github.com/ledgerwatch/log/v3"
+ "golang.org/x/net/http2"
+ "golang.org/x/net/http2/h2c"
)
+type HttpEndpointConfig struct {
+ Timeouts rpccfg.HTTPTimeouts
+ HTTPS bool
+ CertFile string
+ KeyFile string
+}
+
// StartHTTPEndpoint starts the HTTP RPC endpoint.
-func StartHTTPEndpoint(endpoint string, timeouts rpccfg.HTTPTimeouts, handler http.Handler) (*http.Server, net.Addr, error) {
+func StartHTTPEndpoint(urlEndpoint string, cfg *HttpEndpointConfig, handler http.Handler) (*http.Server, net.Addr, error) {
// start the HTTP listener
var (
listener net.Listener
err error
)
- if listener, err = net.Listen("tcp", endpoint); err != nil {
+ socketUrl, err := url.Parse(urlEndpoint)
+ if err != nil {
+ return nil, nil, fmt.Errorf("malformatted http listen url %s: %w", urlEndpoint, err)
+ }
+ if listener, err = net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()); err != nil {
+ return nil, nil, err
+ }
+ // make sure timeout values are meaningful
+ CheckTimeouts(&cfg.Timeouts)
+ // create the http2 server for handling h2c
+ h2 := &http2.Server{}
+ // enable h2c support
+ handler = h2c.NewHandler(handler, h2)
+ // Bundle the http server
+ httpSrv := &http.Server{
+ Handler: handler,
+ ReadTimeout: cfg.Timeouts.ReadTimeout,
+ WriteTimeout: cfg.Timeouts.WriteTimeout,
+ IdleTimeout: cfg.Timeouts.IdleTimeout,
+ ReadHeaderTimeout: cfg.Timeouts.ReadTimeout,
+ }
+ // start the HTTP server
+ go func() {
+ var serveErr error
+ if cfg.HTTPS {
+ serveErr = httpSrv.ServeTLS(listener, cfg.CertFile, cfg.KeyFile)
+ if serveErr != nil && !isIgnoredHttpServerError(serveErr) {
+ log.Warn("Failed to serve https endpoint", "err", serveErr)
+ }
+ } else {
+ serveErr = httpSrv.Serve(listener)
+ if serveErr != nil && !isIgnoredHttpServerError(serveErr) {
+ log.Warn("Failed to serve http endpoint", "err", serveErr)
+ }
+ }
+ }()
+ return httpSrv, listener.Addr(), err
+}
+
+func isIgnoredHttpServerError(serveErr error) bool {
+ return (errors.Is(serveErr, context.Canceled) || errors.Is(serveErr, libcommon.ErrStopped) || errors.Is(serveErr, http.ErrServerClosed))
+
+}
+
+// StartHTTPEndpoint starts the HTTP RPC endpoint.
+func StartHTTPSEndpoint(urlEndpoint string,
+ keyFile string, certFile string,
+ timeouts rpccfg.HTTPTimeouts, handler http.Handler,
+) (*http.Server, net.Addr, error) {
+ // start the HTTP listener
+ var (
+ listener net.Listener
+ err error
+ )
+ socketUrl, err := url.Parse(urlEndpoint)
+ if err != nil {
+ return nil, nil, fmt.Errorf("malformatted http listen url %s: %w", urlEndpoint, err)
+ }
+ if listener, err = net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()); err != nil {
return nil, nil, err
}
// make sure timeout values are meaningful
CheckTimeouts(&timeouts)
- // Bundle and start the HTTP server
+ // create the http2 server for handling h2c
+ h2 := &http2.Server{}
+ // enable h2c support
+ handler = h2c.NewHandler(handler, h2)
+ // Bundle the http server
httpSrv := &http.Server{
Handler: handler,
ReadTimeout: timeouts.ReadTimeout,
@@ -49,8 +122,9 @@ func StartHTTPEndpoint(endpoint string, timeouts rpccfg.HTTPTimeouts, handler ht
IdleTimeout: timeouts.IdleTimeout,
ReadHeaderTimeout: timeouts.ReadTimeout,
}
+ // start the HTTP server
go func() {
- serveErr := httpSrv.Serve(listener)
+ serveErr := httpSrv.ServeTLS(listener, certFile, keyFile)
if serveErr != nil &&
!(errors.Is(serveErr, context.Canceled) || errors.Is(serveErr, libcommon.ErrStopped) || errors.Is(serveErr, http.ErrServerClosed)) {
log.Warn("Failed to serve http endpoint", "err", serveErr)
diff --git a/p2p/discover/v5wire/crypto_test.go b/p2p/discover/v5wire/crypto_test.go
index c5ce9c66ec7..1c27f37372e 100644
--- a/p2p/discover/v5wire/crypto_test.go
+++ b/p2p/discover/v5wire/crypto_test.go
@@ -21,11 +21,11 @@ import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/sha256"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"reflect"
"strings"
"testing"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/p2p/enode"
"github.com/ledgerwatch/log/v3"
diff --git a/p2p/discover/v5wire/encoding_test.go b/p2p/discover/v5wire/encoding_test.go
index 6db05675b4b..a3a1758423b 100644
--- a/p2p/discover/v5wire/encoding_test.go
+++ b/p2p/discover/v5wire/encoding_test.go
@@ -23,6 +23,7 @@ import (
"encoding/hex"
"flag"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"net"
"os"
"path/filepath"
@@ -32,7 +33,6 @@ import (
"testing"
"github.com/davecgh/go-spew/spew"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/mclock"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/p2p/enode"
diff --git a/p2p/dnsdisc/client_test.go b/p2p/dnsdisc/client_test.go
index 7ab1f9ed586..0b9f3d3005c 100644
--- a/p2p/dnsdisc/client_test.go
+++ b/p2p/dnsdisc/client_test.go
@@ -20,12 +20,12 @@ import (
"context"
"crypto/ecdsa"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"reflect"
"testing"
"time"
"github.com/davecgh/go-spew/spew"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/mclock"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/p2p/enode"
diff --git a/p2p/dnsdisc/tree_test.go b/p2p/dnsdisc/tree_test.go
index 73ffafa6a8e..828d0c61645 100644
--- a/p2p/dnsdisc/tree_test.go
+++ b/p2p/dnsdisc/tree_test.go
@@ -17,11 +17,11 @@
package dnsdisc
import (
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"reflect"
"testing"
"github.com/davecgh/go-spew/spew"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/p2p/enode"
)
diff --git a/p2p/enode/nodedb.go b/p2p/enode/nodedb.go
index ab424492899..8145efc69a0 100644
--- a/p2p/enode/nodedb.go
+++ b/p2p/enode/nodedb.go
@@ -33,7 +33,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/mdbx"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/rlp"
"github.com/ledgerwatch/log/v3"
@@ -251,7 +250,7 @@ func (db *DB) storeInt64(key []byte, n int64) error {
blob := make([]byte, binary.MaxVarintLen64)
blob = blob[:binary.PutVarint(blob, n)]
return db.kv.Update(context.Background(), func(tx kv.RwTx) error {
- return tx.Put(kv.Inodes, common.CopyBytes(key), blob)
+ return tx.Put(kv.Inodes, libcommon.CopyBytes(key), blob)
})
}
@@ -278,7 +277,7 @@ func (db *DB) storeUint64(key []byte, n uint64) error {
blob := make([]byte, binary.MaxVarintLen64)
blob = blob[:binary.PutUvarint(blob, n)]
return db.kv.Update(context.Background(), func(tx kv.RwTx) error {
- return tx.Put(kv.Inodes, common.CopyBytes(key), blob)
+ return tx.Put(kv.Inodes, libcommon.CopyBytes(key), blob)
})
}
diff --git a/p2p/metrics.go b/p2p/metrics.go
index 322e141d2fb..2506ca7d80e 100644
--- a/p2p/metrics.go
+++ b/p2p/metrics.go
@@ -19,9 +19,8 @@
package p2p
import (
+ "github.com/ledgerwatch/erigon-lib/metrics"
"net"
-
- "github.com/ledgerwatch/erigon/metrics"
)
const (
diff --git a/p2p/peer.go b/p2p/peer.go
index 88ea4bb50ec..0adf711d765 100644
--- a/p2p/peer.go
+++ b/p2p/peer.go
@@ -22,15 +22,18 @@ import (
"io"
"net"
"sort"
+ "strings"
"sync"
"time"
+ "github.com/ledgerwatch/erigon-lib/metrics"
+
"github.com/ledgerwatch/log/v3"
+ "github.com/ledgerwatch/erigon-lib/diagnostics"
"github.com/ledgerwatch/erigon/common/debug"
"github.com/ledgerwatch/erigon/common/mclock"
"github.com/ledgerwatch/erigon/event"
- "github.com/ledgerwatch/erigon/metrics"
"github.com/ledgerwatch/erigon/p2p/enode"
"github.com/ledgerwatch/erigon/p2p/enr"
"github.com/ledgerwatch/erigon/rlp"
@@ -121,6 +124,14 @@ type Peer struct {
events *event.Feed
pubkey [64]byte
metricsEnabled bool
+
+ //diagnostics info
+ BytesIn uint64
+ BytesOut uint64
+ CapBytesIn map[string]uint64
+ CapBytesOut map[string]uint64
+ TypeBytesIn map[string]uint64
+ TypeBytesOut map[string]uint64
}
// NewPeer returns a peer for testing purposes.
@@ -224,6 +235,12 @@ func newPeer(logger log.Logger, conn *conn, protocols []Protocol, pubkey [64]byt
log: logger.New("id", conn.node.ID(), "conn", conn.flags),
pubkey: pubkey,
metricsEnabled: metricsEnabled,
+ CapBytesIn: make(map[string]uint64),
+ CapBytesOut: make(map[string]uint64),
+ TypeBytesIn: make(map[string]uint64),
+ TypeBytesOut: make(map[string]uint64),
+ BytesIn: 0,
+ BytesOut: 0,
}
return p
}
@@ -232,6 +249,45 @@ func (p *Peer) Log() log.Logger {
return p.log
}
+func makeFirstCharCap(input string) string {
+ // Convert the entire string to lowercase
+ input = strings.ToLower(input)
+ // Use strings.Title to capitalize the first letter of each word
+ input = strings.ToUpper(input[:1]) + input[1:]
+ return input
+}
+
+func convertToCamelCase(input string) string {
+ parts := strings.Split(input, "_")
+ if len(parts) == 1 {
+ return input
+ }
+
+ var result string
+
+ for _, part := range parts {
+ if len(part) > 0 && part != parts[len(parts)-1] {
+ result += makeFirstCharCap(part)
+ }
+ }
+
+ return result
+}
+
+func (p *Peer) CountBytesTransfered(msgType string, msgCap string, bytes uint64, inbound bool) {
+ messageType := convertToCamelCase(msgType)
+
+ if inbound {
+ p.BytesIn += bytes
+ p.CapBytesIn[msgCap] += bytes
+ p.TypeBytesIn[messageType] += bytes
+ } else {
+ p.BytesOut += bytes
+ p.CapBytesOut[msgCap] += bytes
+ p.TypeBytesOut[messageType] += bytes
+ }
+}
+
func (p *Peer) run() (peerErr *PeerError) {
var (
writeStart = make(chan struct{}, 1)
@@ -309,7 +365,7 @@ func (p *Peer) readLoop(errc chan<- error) {
errc <- err
return
}
- msg.ReceivedAt = time.Now()
+
if err = p.handle(msg); err != nil {
errc <- err
return
@@ -343,6 +399,17 @@ func (p *Peer) handle(msg Msg) error {
if err != nil {
return fmt.Errorf("msg code out of range: %v", msg.Code)
}
+ //msgType := "unknown"
+
+ //var dds uint64 = msg.Code
+
+ //dds -= proto.offset
+ //msgCode := msg.Code - proto.offset
+ //msgType = eth.ToProto[proto.cap().Version][dds].String()
+ //msgType := eth.ToProto[proto.cap().Version][msgCode].String()
+
+ //p.CountBytesTransfered(msgType, proto.cap().String(), uint64(msg.Size), true)
+
if p.metricsEnabled {
m := fmt.Sprintf("%s_%s_%d_%#02x", ingressMeterName, proto.Name, proto.Version, msg.Code-proto.offset)
metrics.GetOrCreateCounter(m).Set(uint64(msg.meterSize))
@@ -445,9 +512,9 @@ func (rw *protoRW) WriteMsg(msg Msg) (err error) {
if msg.Code >= rw.Length {
return NewPeerError(PeerErrorInvalidMessageCode, DiscProtocolError, nil, fmt.Sprintf("not handled code=%d", msg.Code))
}
+
msg.meterCap = rw.cap()
msg.meterCode = msg.Code
-
msg.Code += rw.offset
select {
@@ -465,6 +532,7 @@ func (rw *protoRW) WriteMsg(msg Msg) (err error) {
}
func (rw *protoRW) ReadMsg() (Msg, error) {
+
select {
case msg := <-rw.in:
msg.Code -= rw.offset
@@ -531,3 +599,23 @@ func (p *Peer) Info() *PeerInfo {
}
return info
}
+
+func (p *Peer) DiagInfo() *diagnostics.PeerStatistics {
+ return &diagnostics.PeerStatistics{
+ BytesIn: p.BytesIn,
+ BytesOut: p.BytesOut,
+ CapBytesIn: p.CapBytesIn,
+ CapBytesOut: p.CapBytesOut,
+ TypeBytesIn: p.TypeBytesIn,
+ TypeBytesOut: p.TypeBytesOut,
+ }
+}
+
+func (p *Peer) ResetDiagnosticsCounters() {
+ p.BytesIn = 0
+ p.BytesOut = 0
+ p.CapBytesIn = make(map[string]uint64)
+ p.CapBytesOut = make(map[string]uint64)
+ p.TypeBytesIn = make(map[string]uint64)
+ p.TypeBytesOut = make(map[string]uint64)
+}
diff --git a/p2p/rlpx/buffer_test.go b/p2p/rlpx/buffer_test.go
index b33098b9c2a..2fb372debe4 100644
--- a/p2p/rlpx/buffer_test.go
+++ b/p2p/rlpx/buffer_test.go
@@ -18,9 +18,9 @@ package rlpx
import (
"bytes"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"testing"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/stretchr/testify/assert"
)
diff --git a/cmd/sentry/sentry/eth_handshake.go b/p2p/sentry/eth_handshake.go
similarity index 100%
rename from cmd/sentry/sentry/eth_handshake.go
rename to p2p/sentry/eth_handshake.go
diff --git a/cmd/sentry/sentry/eth_handshake_test.go b/p2p/sentry/eth_handshake_test.go
similarity index 100%
rename from cmd/sentry/sentry/eth_handshake_test.go
rename to p2p/sentry/eth_handshake_test.go
diff --git a/cmd/sentry/sentry/sentry_grpc_server.go b/p2p/sentry/sentry_grpc_server.go
similarity index 98%
rename from cmd/sentry/sentry/sentry_grpc_server.go
rename to p2p/sentry/sentry_grpc_server.go
index 3d55727c2ca..2440838965a 100644
--- a/cmd/sentry/sentry/sentry_grpc_server.go
+++ b/p2p/sentry/sentry_grpc_server.go
@@ -27,6 +27,7 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/common/dir"
+ "github.com/ledgerwatch/erigon-lib/diagnostics"
"github.com/ledgerwatch/erigon-lib/direct"
"github.com/ledgerwatch/erigon-lib/gointerfaces"
"github.com/ledgerwatch/erigon-lib/gointerfaces/grpcutil"
@@ -345,13 +346,14 @@ func handShake(
func runPeer(
ctx context.Context,
peerID [64]byte,
- protocol uint,
+ cap p2p.Cap,
rw p2p.MsgReadWriter,
peerInfo *PeerInfo,
send func(msgId proto_sentry.MessageId, peerID [64]byte, b []byte),
hasSubscribers func(msgId proto_sentry.MessageId) bool,
logger log.Logger,
) *p2p.PeerError {
+ protocol := cap.Version
printTime := time.Now().Add(time.Minute)
peerPrinted := false
defer func() {
@@ -383,6 +385,7 @@ func runPeer(
if err != nil {
return p2p.NewPeerError(p2p.PeerErrorMessageReceive, p2p.DiscNetworkError, err, "sentry.runPeer: ReadMsg error")
}
+
if msg.Size > eth.ProtocolMaxMsgSize {
msg.Discard()
return p2p.NewPeerError(p2p.PeerErrorMessageSizeLimit, p2p.DiscSubprotocolError, nil, fmt.Sprintf("sentry.runPeer: message is too large %d, limit %d", msg.Size, eth.ProtocolMaxMsgSize))
@@ -533,6 +536,11 @@ func runPeer(
default:
logger.Error(fmt.Sprintf("[p2p] Unknown message code: %d, peerID=%x", msg.Code, peerID))
}
+
+ msgType := eth.ToProto[protocol][msg.Code]
+ msgCap := cap.String()
+ peerInfo.peer.CountBytesTransfered(msgType.String(), msgCap, uint64(msg.Size), true)
+
msg.Discard()
peerInfo.ClearDeadlines(time.Now(), givePermit)
}
@@ -624,14 +632,16 @@ func NewGrpcServer(ctx context.Context, dialCandidates func() enode.Iterator, re
ss.GoodPeers.Store(peerID, peerInfo)
ss.sendNewPeerToClients(gointerfaces.ConvertHashToH512(peerID))
getBlockHeadersErr := ss.getBlockHeaders(ctx, *peerBestHash, peerID)
- if err != nil {
+ if getBlockHeadersErr != nil {
return p2p.NewPeerError(p2p.PeerErrorFirstMessageSend, p2p.DiscNetworkError, getBlockHeadersErr, "p2p.Protocol.Run getBlockHeaders failure")
}
+ cap := p2p.Cap{Name: eth.ProtocolName, Version: protocol}
+
err = runPeer(
ctx,
peerID,
- protocol,
+ cap,
rw,
peerInfo,
ss.send,
@@ -730,6 +740,11 @@ func (ss *GrpcServer) removePeer(peerID [64]byte, reason *p2p.PeerError) {
func (ss *GrpcServer) writePeer(logPrefix string, peerInfo *PeerInfo, msgcode uint64, data []byte, ttl time.Duration) {
peerInfo.Async(func() {
+
+ cap := p2p.Cap{Name: eth.ProtocolName, Version: peerInfo.protocol}
+ msgType := eth.ToProto[cap.Version][msgcode]
+ peerInfo.peer.CountBytesTransfered(msgType.String(), cap.String(), uint64(len(data)), false)
+
err := peerInfo.rw.WriteMsg(p2p.Msg{Code: msgcode, Size: uint32(len(data)), Payload: bytes.NewReader(data)})
if err != nil {
peerInfo.Remove(p2p.NewPeerError(p2p.PeerErrorMessageSend, p2p.DiscNetworkError, err, fmt.Sprintf("%s writePeer msgcode=%d", logPrefix, msgcode)))
@@ -1038,6 +1053,15 @@ func (ss *GrpcServer) Peers(_ context.Context, _ *emptypb.Empty) (*proto_sentry.
return &reply, nil
}
+func (ss *GrpcServer) DiagnosticsPeersData() map[string]*diagnostics.PeerStatistics {
+ if ss.P2pServer == nil {
+ return map[string]*diagnostics.PeerStatistics{}
+ }
+
+ peers := ss.P2pServer.DiagnosticsPeersInfo()
+ return peers
+}
+
func (ss *GrpcServer) SimplePeerCount() map[uint]int {
counts := map[uint]int{}
ss.rangePeers(func(peerInfo *PeerInfo) bool {
diff --git a/cmd/sentry/sentry/sentry_grpc_server_test.go b/p2p/sentry/sentry_grpc_server_test.go
similarity index 100%
rename from cmd/sentry/sentry/sentry_grpc_server_test.go
rename to p2p/sentry/sentry_grpc_server_test.go
diff --git a/cmd/sentry/sentry/broadcast.go b/p2p/sentry/sentry_multi_client/broadcast.go
similarity index 98%
rename from cmd/sentry/sentry/broadcast.go
rename to p2p/sentry/sentry_multi_client/broadcast.go
index e3f961aafde..f210d8ea5f1 100644
--- a/cmd/sentry/sentry/broadcast.go
+++ b/p2p/sentry/sentry_multi_client/broadcast.go
@@ -1,4 +1,4 @@
-package sentry
+package sentry_multi_client
import (
"context"
diff --git a/cmd/sentry/sentry/sentry_api.go b/p2p/sentry/sentry_multi_client/sentry_api.go
similarity index 96%
rename from cmd/sentry/sentry/sentry_api.go
rename to p2p/sentry/sentry_multi_client/sentry_api.go
index f850e677eb7..210e91d1d42 100644
--- a/cmd/sentry/sentry/sentry_api.go
+++ b/p2p/sentry/sentry_multi_client/sentry_api.go
@@ -1,7 +1,8 @@
-package sentry
+package sentry_multi_client
import (
"context"
+ "github.com/ledgerwatch/erigon/p2p/sentry"
"math/rand"
"github.com/holiman/uint256"
@@ -72,7 +73,7 @@ func (cs *MultiClient) SendBodyRequest(ctx context.Context, req *bodydownload.Bo
if sentPeers == nil || len(sentPeers.Peers) == 0 {
continue
}
- return ConvertH512ToPeerID(sentPeers.Peers[0]), true
+ return sentry.ConvertH512ToPeerID(sentPeers.Peers[0]), true
}
return [64]byte{}, false
}
@@ -119,7 +120,7 @@ func (cs *MultiClient) SendHeaderRequest(ctx context.Context, req *headerdownloa
if sentPeers == nil || len(sentPeers.Peers) == 0 {
continue
}
- return ConvertH512ToPeerID(sentPeers.Peers[0]), true
+ return sentry.ConvertH512ToPeerID(sentPeers.Peers[0]), true
}
return [64]byte{}, false
}
diff --git a/cmd/sentry/sentry/sentry_multi_client.go b/p2p/sentry/sentry_multi_client/sentry_multi_client.go
similarity index 98%
rename from cmd/sentry/sentry/sentry_multi_client.go
rename to p2p/sentry/sentry_multi_client/sentry_multi_client.go
index f117020119f..1766e399eca 100644
--- a/cmd/sentry/sentry/sentry_multi_client.go
+++ b/p2p/sentry/sentry_multi_client/sentry_multi_client.go
@@ -1,4 +1,4 @@
-package sentry
+package sentry_multi_client
import (
"bytes"
@@ -6,6 +6,7 @@ import (
"encoding/hex"
"errors"
"fmt"
+ sentry2 "github.com/ledgerwatch/erigon/p2p/sentry"
"math/rand"
"sort"
"sync"
@@ -441,7 +442,7 @@ func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPac
return err
}
defer tx.Rollback()
- penalties, err := cs.Hd.ProcessHeadersPOS(csHeaders, tx, ConvertH512ToPeerID(peerID))
+ penalties, err := cs.Hd.ProcessHeadersPOS(csHeaders, tx, sentry2.ConvertH512ToPeerID(peerID))
if err != nil {
return err
}
@@ -450,7 +451,7 @@ func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPac
}
} else {
sort.Sort(headerdownload.HeadersSort(csHeaders)) // Sorting by order of block heights
- canRequestMore := cs.Hd.ProcessHeaders(csHeaders, false /* newBlock */, ConvertH512ToPeerID(peerID))
+ canRequestMore := cs.Hd.ProcessHeaders(csHeaders, false /* newBlock */, sentry2.ConvertH512ToPeerID(peerID))
if canRequestMore {
currentTime := time.Now()
@@ -520,7 +521,7 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou
})
}
- cs.Hd.ProcessHeaders(segments, true /* newBlock */, ConvertH512ToPeerID(inreq.PeerId)) // There is only one segment in this case
+ cs.Hd.ProcessHeaders(segments, true /* newBlock */, sentry2.ConvertH512ToPeerID(inreq.PeerId)) // There is only one segment in this case
} else {
outreq := proto_sentry.PenalizePeerRequest{
PeerId: inreq.PeerId,
@@ -546,7 +547,7 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou
if _, err1 := sentry.PeerMinBlock(ctx, &outreq, &grpc.EmptyCallOption{}); err1 != nil {
cs.logger.Error("Could not send min block for peer", "err", err1)
}
- cs.logger.Trace(fmt.Sprintf("NewBlockMsg{blockNumber: %d} from [%s]", request.Block.NumberU64(), ConvertH512ToPeerID(inreq.PeerId)))
+ cs.logger.Trace(fmt.Sprintf("NewBlockMsg{blockNumber: %d} from [%s]", request.Block.NumberU64(), sentry2.ConvertH512ToPeerID(inreq.PeerId)))
return nil
}
@@ -560,7 +561,7 @@ func (cs *MultiClient) blockBodies66(ctx context.Context, inreq *proto_sentry.In
// No point processing empty response
return nil
}
- cs.Bd.DeliverBodies(txs, uncles, withdrawals, uint64(len(inreq.Data)), ConvertH512ToPeerID(inreq.PeerId))
+ cs.Bd.DeliverBodies(txs, uncles, withdrawals, uint64(len(inreq.Data)), sentry2.ConvertH512ToPeerID(inreq.PeerId))
return nil
}
@@ -751,7 +752,7 @@ func (cs *MultiClient) handleInboundMessage(ctx context.Context, inreq *proto_se
func (cs *MultiClient) HandlePeerEvent(ctx context.Context, event *proto_sentry.PeerEvent, sentry direct.SentryClient) error {
eventID := event.EventId.String()
- peerID := ConvertH512ToPeerID(event.PeerId)
+ peerID := sentry2.ConvertH512ToPeerID(event.PeerId)
peerIDStr := hex.EncodeToString(peerID[:])
if !cs.logPeerInfo {
diff --git a/p2p/server.go b/p2p/server.go
index 48015bcaa01..4a32e45b35f 100644
--- a/p2p/server.go
+++ b/p2p/server.go
@@ -26,12 +26,14 @@ import (
"fmt"
"net"
"sort"
+ "strconv"
"sync"
"sync/atomic"
"time"
"golang.org/x/sync/semaphore"
+ "github.com/ledgerwatch/erigon-lib/diagnostics"
"github.com/ledgerwatch/log/v3"
"github.com/ledgerwatch/erigon/common"
@@ -154,6 +156,9 @@ type Config struct {
// Internet.
NAT nat.Interface `toml:",omitempty"`
+ // NAT interface description (see NAT.Parse()).
+ NATSpec string
+
// If Dialer is set to a non-nil value, the given Dialer
// is used to dial outbound peer connections.
Dialer NodeDialer `toml:"-"`
@@ -173,6 +178,18 @@ type Config struct {
MetricsEnabled bool
}
+func (config *Config) ListenPort() int {
+ _, portStr, err := net.SplitHostPort(config.ListenAddr)
+ if err != nil {
+ return 0
+ }
+ port, err := strconv.Atoi(portStr)
+ if err != nil {
+ return 0
+ }
+ return port
+}
+
// Server manages all peer connections.
type Server struct {
// Config fields may not be modified while the server is running.
@@ -542,15 +559,19 @@ func (srv *Server) setupLocalNode() error {
return err
}
srv.nodedb = db
+
srv.localnode = enode.NewLocalNode(db, srv.PrivateKey, srv.logger)
srv.localnode.SetFallbackIP(net.IP{127, 0, 0, 1})
- srv.updateLocalNodeStaticAddrCache()
+
// TODO: check conflicts
for _, p := range srv.Protocols {
for _, e := range p.Attributes {
srv.localnode.Set(e)
}
}
+
+ srv.updateLocalNodeStaticAddrCache()
+
switch srv.NAT.(type) {
case nil:
// No NAT interface, do nothing.
@@ -616,6 +637,7 @@ func (srv *Server) setupDiscovery(ctx context.Context) error {
}
}
srv.localnode.SetFallbackUDP(realaddr.Port)
+ srv.updateLocalNodeStaticAddrCache()
// Discovery V4
var unhandled chan discover.ReadPacket
@@ -718,6 +740,8 @@ func (srv *Server) setupListening(ctx context.Context) error {
// Update the local node record and map the TCP listening port if NAT is configured.
if tcp, ok := listener.Addr().(*net.TCPAddr); ok {
srv.localnode.Set(enr.TCP(tcp.Port))
+ srv.updateLocalNodeStaticAddrCache()
+
if !tcp.IP.IsLoopback() && (srv.NAT != nil) && srv.NAT.SupportsMapping() {
srv.loopWG.Add(1)
go func() {
@@ -1160,6 +1184,7 @@ func (srv *Server) PeersInfo() []*PeerInfo {
for _, peer := range srv.Peers() {
if peer != nil {
infos = append(infos, peer.Info())
+ peer.ResetDiagnosticsCounters()
}
}
// Sort the result array alphabetically by node identifier
@@ -1172,3 +1197,17 @@ func (srv *Server) PeersInfo() []*PeerInfo {
}
return infos
}
+
+// PeersInfo returns an array of metadata objects describing connected peers.
+func (srv *Server) DiagnosticsPeersInfo() map[string]*diagnostics.PeerStatistics {
+ // Gather all the generic and sub-protocol specific infos
+ infos := make(map[string]*diagnostics.PeerStatistics)
+ for _, peer := range srv.Peers() {
+ if peer != nil {
+ infos[peer.ID().String()] = peer.DiagInfo()
+ peer.ResetDiagnosticsCounters()
+ }
+ }
+
+ return infos
+}
diff --git a/p2p/transport.go b/p2p/transport.go
index 6eceacb9afe..b2223cb716f 100644
--- a/p2p/transport.go
+++ b/p2p/transport.go
@@ -20,13 +20,13 @@ import (
"bytes"
"crypto/ecdsa"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common"
"io"
"net"
"strings"
"sync"
"time"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/bitutil"
"github.com/ledgerwatch/erigon/p2p/rlpx"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/params/bootnodes.go b/params/bootnodes.go
index 43d40b30968..31b31f2ccf8 100644
--- a/params/bootnodes.go
+++ b/params/bootnodes.go
@@ -17,9 +17,8 @@
package params
import (
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
-
- "github.com/ledgerwatch/erigon/params/networkname"
)
// MainnetBootnodes are the enode URLs of the P2P bootstrap nodes running on
diff --git a/params/chainspecs/bor-devnet.json b/params/chainspecs/bor-devnet.json
index 376663aa360..e41007f9535 100644
--- a/params/chainspecs/bor-devnet.json
+++ b/params/chainspecs/bor-devnet.json
@@ -12,8 +12,10 @@
"muirGlacierBlock": 0,
"berlinBlock": 0,
"londonBlock": 0,
- "eip1559FeeCollectorTransition": 23850000,
- "eip1559FeeCollector": "0x70bca57f4579f58670ab2d18ef16e02c17553c38",
+ "burntContract": {
+ "22640000": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38",
+ "41874000": "0x617b94CCCC2511808A3C9478ebb96f455CF167aA"
+ },
"bor": {
"period": {
"0": 2
@@ -33,15 +35,22 @@
"validatorContract": "0x0000000000000000000000000000000000001000",
"stateReceiverContract": "0x0000000000000000000000000000000000001001",
"blockAlloc": {
- "30": {
+ "0": {
"0000000000000000000000000000000000001010": {
"balance": "0x0",
"code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032"
}
+ },
+ "41874000": {
+ "0x0000000000000000000000000000000000001001": {
+ "balance": "0x0",
+ "code": "0x608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806319494a17146100635780633434735f146100fe5780635407ca6714610148575b600080fd5b6100e46004803603604081101561007957600080fd5b8101908080359060200190929190803590602001906401000000008111156100a057600080fd5b8201836020820111156100b257600080fd5b803590602001918460018302840111640100000000831117156100d457600080fd5b9091929391929390505050610166565b604051808215151515815260200191505060405180910390f35b6101066104d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101506104eb565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061027461026f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104f1565b61051f565b905060006102958260008151811061028857fe5b60200260200101516105fc565b90508060016000540114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103418360018151811061033457fe5b602002602001015161066d565b905060606103628460028151811061035557fe5b6020026020010151610690565b905061036d8261071c565b156104c8576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104f961099c565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061052a82610735565b61053357600080fd5b600061053e83610783565b905060608160405190808252806020026020018201604052801561057c57816020015b6105696109b6565b8152602001906001900390816105615790505b509050600061058e85602001516107f4565b8560200151019050600080600090505b848110156105ef576105af8361087d565b91506040518060400160405280838152602001848152508482815181106105d257fe5b60200260200101819052508183019250808060010191505061059e565b5082945050505050919050565b600080826000015111801561061657506021826000015111155b61061f57600080fd5b600061062e83602001516107f4565b9050600081846000015103905060008083866020015101905080519150602083101561066157826020036101000a820491505b81945050505050919050565b6000601582600001511461068057600080fd5b610689826105fc565b9050919050565b606060008260000151116106a357600080fd5b60006106b283602001516107f4565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106f45781602001600182028038833980820191505090505b5090506000816020019050610710848760200151018285610935565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561074c576000905061077e565b60008083602001519050805160001a915060c060ff168260ff1610156107775760009250505061077e565b6001925050505b919050565b6000808260000151141561079a57600090506107ef565b600080905060006107ae84602001516107f4565b84602001510190506000846000015185602001510190505b808210156107e8576107d78261087d565b8201915082806001019350506107c6565b8293505050505b919050565b600080825160001a9050608060ff16811015610814576000915050610878565b60b860ff16811080610839575060c060ff168110158015610838575060f860ff1681105b5b15610848576001915050610878565b60c060ff168110156108685760018060b80360ff16820301915050610878565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561089e576001915061092b565b60b860ff168110156108bb576001608060ff16820301915061092a565b60c060ff168110156108eb5760b78103600185019450806020036101000a85510460018201810193505050610929565b60f860ff1681101561090857600160c060ff168203019150610928565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b600081141561094357610997565b5b602060ff1681106109735782518252602060ff1683019250602060ff1682019150602060ff1681039050610944565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a723158208f1ea6fcf63d6911ac5dbfe340be1029614581802c6a750e7d6354b32ce6647c64736f6c63430005110032"
+ }
}
},
"jaipurBlock": 0,
"delhiBlock": 0,
- "indoreBlock": 0
+ "indoreBlock": 0,
+ "agraBlock": 100
}
}
diff --git a/params/chainspecs/bor-mainnet.json b/params/chainspecs/bor-mainnet.json
index 87a22d389b3..e022f6642ba 100644
--- a/params/chainspecs/bor-mainnet.json
+++ b/params/chainspecs/bor-mainnet.json
@@ -12,8 +12,9 @@
"muirGlacierBlock": 3395000,
"berlinBlock": 14750000,
"londonBlock": 23850000,
- "eip1559FeeCollectorTransition": 23850000,
- "eip1559FeeCollector": "0x70bca57f4579f58670ab2d18ef16e02c17553c38",
+ "burntContract": {
+ "23850000": "0x70bca57f4579f58670ab2d18ef16e02c17553c38"
+ },
"bor": {
"period": {
"0": 2
diff --git a/params/chainspecs/chiado.json b/params/chainspecs/chiado.json
index fc65f2d7170..c1f2acf4be8 100644
--- a/params/chainspecs/chiado.json
+++ b/params/chainspecs/chiado.json
@@ -11,8 +11,9 @@
"istanbulBlock": 0,
"berlinBlock": 0,
"londonBlock": 0,
- "eip1559FeeCollectorTransition": 0,
- "eip1559FeeCollector": "0x1559000000000000000000000000000000000000",
+ "burntContract": {
+ "0": "0x1559000000000000000000000000000000000000"
+ },
"terminalTotalDifficulty": 231707791542740786049188744689299064356246512,
"terminalTotalDifficultyPassed": true,
"shanghaiTime": 1684934220,
diff --git a/params/chainspecs/gnosis.json b/params/chainspecs/gnosis.json
index ad80ab8a5d7..a547608954e 100644
--- a/params/chainspecs/gnosis.json
+++ b/params/chainspecs/gnosis.json
@@ -11,8 +11,9 @@
"istanbulBlock": 7298030,
"berlinBlock": 16101500,
"londonBlock": 19040000,
- "eip1559FeeCollectorTransition": 19040000,
- "eip1559FeeCollector": "0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92",
+ "burntContract": {
+ "19040000": "0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92"
+ },
"terminalTotalDifficulty": 8626000000000000000000058750000000000000000000,
"terminalTotalDifficultyPassed": true,
"shanghaiTime": 1690889660,
diff --git a/params/chainspecs/mumbai.json b/params/chainspecs/mumbai.json
index 3bd9d8ba6c7..3a61eb1acd1 100644
--- a/params/chainspecs/mumbai.json
+++ b/params/chainspecs/mumbai.json
@@ -12,8 +12,10 @@
"muirGlacierBlock": 2722000,
"berlinBlock": 13996000,
"londonBlock": 22640000,
- "eip1559FeeCollectorTransition": 22640000,
- "eip1559FeeCollector": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38",
+ "burntContract": {
+ "22640000": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38",
+ "41874000": "0x617b94CCCC2511808A3C9478ebb96f455CF167aA"
+ },
"bor": {
"period": {
"0": 2,
@@ -45,10 +47,17 @@
"balance": "0x0",
"code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611548565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154e565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115db565b005b348015610b2e57600080fd5b50610b376115f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161e90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da96023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163e90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d866023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165d565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f013881000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611755565b90505b92915050565b6040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b12565b611be8565b9050949350505050565b6201388181565b60015481565b604051806080016040528060528152602001611dcc605291396040516020018082805190602001908083835b6020831061159d578051825260208201915060208101905060208303925061157a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e3611381565b6115ec57600080fd5b6115f58161165d565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162d57600080fd5b600082840390508091505092915050565b60008082840190508381101561165357600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d557600080fd5b505afa1580156117e9573d6000803e3d6000fd5b505050506040513d60208110156117ff57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561189157600080fd5b505afa1580156118a5573d6000803e3d6000fd5b505050506040513d60208110156118bb57600080fd5b810190808051906020019092919050505090506118d9868686611c32565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b60208310611b645780518252602082019150602081019050602083039250611b41565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d1a573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820ccd6c2a9c259832bbb367986ee06cd87af23022681b0cb22311a864b701d939564736f6c63430005100032"
}
+ },
+ "41874000": {
+ "0x0000000000000000000000000000000000001001": {
+ "balance": "0x0",
+ "code": "0x608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806319494a17146100635780633434735f146100fe5780635407ca6714610148575b600080fd5b6100e46004803603604081101561007957600080fd5b8101908080359060200190929190803590602001906401000000008111156100a057600080fd5b8201836020820111156100b257600080fd5b803590602001918460018302840111640100000000831117156100d457600080fd5b9091929391929390505050610166565b604051808215151515815260200191505060405180910390f35b6101066104d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101506104eb565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061027461026f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104f1565b61051f565b905060006102958260008151811061028857fe5b60200260200101516105fc565b90508060016000540114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103418360018151811061033457fe5b602002602001015161066d565b905060606103628460028151811061035557fe5b6020026020010151610690565b905061036d8261071c565b156104c8576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104f961099c565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061052a82610735565b61053357600080fd5b600061053e83610783565b905060608160405190808252806020026020018201604052801561057c57816020015b6105696109b6565b8152602001906001900390816105615790505b509050600061058e85602001516107f4565b8560200151019050600080600090505b848110156105ef576105af8361087d565b91506040518060400160405280838152602001848152508482815181106105d257fe5b60200260200101819052508183019250808060010191505061059e565b5082945050505050919050565b600080826000015111801561061657506021826000015111155b61061f57600080fd5b600061062e83602001516107f4565b9050600081846000015103905060008083866020015101905080519150602083101561066157826020036101000a820491505b81945050505050919050565b6000601582600001511461068057600080fd5b610689826105fc565b9050919050565b606060008260000151116106a357600080fd5b60006106b283602001516107f4565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106f45781602001600182028038833980820191505090505b5090506000816020019050610710848760200151018285610935565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561074c576000905061077e565b60008083602001519050805160001a915060c060ff168260ff1610156107775760009250505061077e565b6001925050505b919050565b6000808260000151141561079a57600090506107ef565b600080905060006107ae84602001516107f4565b84602001510190506000846000015185602001510190505b808210156107e8576107d78261087d565b8201915082806001019350506107c6565b8293505050505b919050565b600080825160001a9050608060ff16811015610814576000915050610878565b60b860ff16811080610839575060c060ff168110158015610838575060f860ff1681105b5b15610848576001915050610878565b60c060ff168110156108685760018060b80360ff16820301915050610878565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561089e576001915061092b565b60b860ff168110156108bb576001608060ff16820301915061092a565b60c060ff168110156108eb5760b78103600185019450806020036101000a85510460018201810193505050610929565b60f860ff1681101561090857600160c060ff168203019150610928565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b600081141561094357610997565b5b602060ff1681106109735782518252602060ff1683019250602060ff1682019150602060ff1681039050610944565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a723158208f1ea6fcf63d6911ac5dbfe340be1029614581802c6a750e7d6354b32ce6647c64736f6c63430005110032"
+ }
}
},
"jaipurBlock": 22770000,
"delhiBlock": 29638656,
- "indoreBlock": 37075456
+ "indoreBlock": 37075456,
+ "agraBlock": 41874000
}
}
diff --git a/params/config.go b/params/config.go
index 851090f0238..c9ea236f520 100644
--- a/params/config.go
+++ b/params/config.go
@@ -24,10 +24,10 @@ import (
"path"
"github.com/ledgerwatch/erigon-lib/chain"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/common/paths"
- "github.com/ledgerwatch/erigon/params/networkname"
)
//go:embed chainspecs
@@ -195,6 +195,8 @@ func ChainConfigByChainName(chain string) *chain.Config {
switch chain {
case networkname.MainnetChainName:
return MainnetChainConfig
+ case networkname.DevChainName:
+ return AllCliqueProtocolChanges
case networkname.HoleskyChainName:
return HoleskyChainConfig
case networkname.SepoliaChainName:
@@ -267,16 +269,11 @@ func ChainConfigByGenesisHash(genesisHash libcommon.Hash) *chain.Config {
}
func NetworkIDByChainName(chain string) uint64 {
- switch chain {
- case networkname.DevChainName:
- return 1337
- default:
- config := ChainConfigByChainName(chain)
- if config == nil {
- return 0
- }
- return config.ChainID.Uint64()
+ config := ChainConfigByChainName(chain)
+ if config == nil {
+ return 0
}
+ return config.ChainID.Uint64()
}
func IsChainPoS(chainConfig *chain.Config, currentTDProvider func() *big.Int) bool {
diff --git a/params/config_test.go b/params/config_test.go
index b448a1526f4..7617ead1ac0 100644
--- a/params/config_test.go
+++ b/params/config_test.go
@@ -21,7 +21,11 @@ import (
"reflect"
"testing"
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
"github.com/ledgerwatch/erigon-lib/chain"
+ "github.com/ledgerwatch/erigon-lib/common"
)
func TestCheckCompatible(t *testing.T) {
@@ -98,3 +102,34 @@ func TestCheckCompatible(t *testing.T) {
}
}
}
+
+func TestGetBurntContract(t *testing.T) {
+ // Ethereum
+ assert.Nil(t, MainnetChainConfig.GetBurntContract(0))
+ assert.Nil(t, MainnetChainConfig.GetBurntContract(10_000_000))
+
+ // Gnosis Chain
+ addr := GnosisChainConfig.GetBurntContract(19_040_000)
+ require.NotNil(t, addr)
+ assert.Equal(t, common.HexToAddress("0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92"), *addr)
+ addr = GnosisChainConfig.GetBurntContract(19_040_001)
+ require.NotNil(t, addr)
+ assert.Equal(t, common.HexToAddress("0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92"), *addr)
+
+ // Mumbai
+ addr = MumbaiChainConfig.GetBurntContract(22640000)
+ require.NotNil(t, addr)
+ assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr)
+ addr = MumbaiChainConfig.GetBurntContract(22640000 + 1)
+ require.NotNil(t, addr)
+ assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr)
+ addr = MumbaiChainConfig.GetBurntContract(41874000 - 1)
+ require.NotNil(t, addr)
+ assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr)
+ addr = MumbaiChainConfig.GetBurntContract(41874000)
+ require.NotNil(t, addr)
+ assert.Equal(t, common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA"), *addr)
+ addr = MumbaiChainConfig.GetBurntContract(41874000 + 1)
+ require.NotNil(t, addr)
+ assert.Equal(t, common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA"), *addr)
+}
diff --git a/params/version.go b/params/version.go
index b8041f72db7..b03f148a8a4 100644
--- a/params/version.go
+++ b/params/version.go
@@ -32,7 +32,7 @@ var (
// see https://calver.org
const (
VersionMajor = 2 // Major version component of the current release
- VersionMinor = 53 // Minor version component of the current release
+ VersionMinor = 54 // Minor version component of the current release
VersionMicro = 0 // Patch version component of the current release
VersionModifier = "dev" // Modifier component of the current release
VersionKeyCreated = "ErigonVersionCreated"
diff --git a/rlp/iterator_test.go b/rlp/iterator_test.go
index 6b927014e70..c33a86d4b46 100644
--- a/rlp/iterator_test.go
+++ b/rlp/iterator_test.go
@@ -17,9 +17,8 @@
package rlp
import (
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"testing"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// TestIterator tests some basic things about the ListIterator. A more
diff --git a/rpc/client_example_test.go b/rpc/client_example_test.go
index 203f9786a42..c713ebddcc3 100644
--- a/rpc/client_example_test.go
+++ b/rpc/client_example_test.go
@@ -19,9 +19,9 @@ package rpc_test
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"time"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/log/v3"
)
diff --git a/rpc/http.go b/rpc/http.go
index f6812a6cfc3..a1938b585b2 100644
--- a/rpc/http.go
+++ b/rpc/http.go
@@ -108,21 +108,11 @@ func DialHTTP(endpoint string, logger log.Logger) (*Client, error) {
func (c *Client) sendHTTP(ctx context.Context, op *requestOp, msg interface{}) error {
hc := c.writeConn.(*httpConn)
respBody, err := hc.doRequest(ctx, msg)
- if respBody != nil {
- defer respBody.Close()
- }
-
if err != nil {
- if respBody != nil {
- buf := new(bytes.Buffer)
- if _, err2 := buf.ReadFrom(respBody); err2 == nil {
- return fmt.Errorf("%w: %v", err, buf.String())
- }
- }
return err
}
var respmsg jsonrpcMessage
- if err := json.NewDecoder(respBody).Decode(&respmsg); err != nil {
+ if err := json.Unmarshal(respBody, &respmsg); err != nil {
return err
}
op.resp <- &respmsg
@@ -135,9 +125,8 @@ func (c *Client) sendBatchHTTP(ctx context.Context, op *requestOp, msgs []*jsonr
if err != nil {
return err
}
- defer respBody.Close()
var respmsgs []jsonrpcMessage
- if err := json.NewDecoder(respBody).Decode(&respmsgs); err != nil {
+ if err := json.Unmarshal(respBody, &respmsgs); err != nil {
return err
}
for i := 0; i < len(respmsgs); i++ {
@@ -146,7 +135,7 @@ func (c *Client) sendBatchHTTP(ctx context.Context, op *requestOp, msgs []*jsonr
return nil
}
-func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) (io.ReadCloser, error) {
+func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) ([]byte, error) {
body, err := json.Marshal(msg)
if err != nil {
return nil, err
@@ -167,10 +156,19 @@ func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) (io.ReadClos
if err != nil {
return nil, err
}
+ defer func() { _ = resp.Body.Close() }()
+
+ // read the response body
+ respBody, err := io.ReadAll(resp.Body)
+ if err != nil {
+ return nil, err
+ }
+
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
- return resp.Body, errors.New(resp.Status)
+ return nil, fmt.Errorf("%s: %s", resp.Status, string(respBody))
}
- return resp.Body, nil
+
+ return respBody, nil
}
// httpServerConn turns a HTTP connection into a Conn.
diff --git a/rpc/metrics.go b/rpc/metrics.go
index cbfa7467f87..21af0ac9b1c 100644
--- a/rpc/metrics.go
+++ b/rpc/metrics.go
@@ -18,10 +18,9 @@ package rpc
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"reflect"
"strings"
-
- "github.com/ledgerwatch/erigon/metrics"
)
var (
diff --git a/rpc/types.go b/rpc/types.go
index 58683829c97..d3e872620e3 100644
--- a/rpc/types.go
+++ b/rpc/types.go
@@ -20,14 +20,13 @@ import (
"context"
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math"
"math/big"
"strconv"
"strings"
libcommon "github.com/ledgerwatch/erigon-lib/common"
-
- "github.com/ledgerwatch/erigon/common/hexutil"
)
// API describes the set of methods offered over the RPC interface
diff --git a/rpc/websocket.go b/rpc/websocket.go
index 1901a9f655a..ce945e656de 100644
--- a/rpc/websocket.go
+++ b/rpc/websocket.go
@@ -125,6 +125,10 @@ func (e wsHandshakeError) Error() string {
return s
}
+func (e wsHandshakeError) Unwrap() error {
+ return e.err
+}
+
func originIsAllowed(allowedOrigins mapset.Set[string], browserOrigin string, logger log.Logger) bool {
it := allowedOrigins.Iterator()
for origin := range it.C {
diff --git a/spectest/case.go b/spectest/case.go
index b541abe83b1..36efa1ade37 100644
--- a/spectest/case.go
+++ b/spectest/case.go
@@ -1,13 +1,13 @@
package spectest
import (
+ "github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cl/transition/machine"
"io/fs"
"os"
"strings"
"gfx.cafe/util/go/generic"
- "github.com/ledgerwatch/erigon/cl/clparams"
)
type TestCase struct {
diff --git a/spectest/util.go b/spectest/util.go
index 598bd83444d..b34ae6ced81 100644
--- a/spectest/util.go
+++ b/spectest/util.go
@@ -2,17 +2,16 @@ package spectest
import (
"fmt"
+ clparams2 "github.com/ledgerwatch/erigon/cl/clparams"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/phase1/core/state"
+ "github.com/ledgerwatch/erigon/cl/utils"
"io/fs"
"os"
"gopkg.in/yaml.v3"
"github.com/ledgerwatch/erigon-lib/types/ssz"
-
- "github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/cl/cltypes"
- "github.com/ledgerwatch/erigon/cl/phase1/core/state"
- "github.com/ledgerwatch/erigon/cl/utils"
)
func ReadMeta(root fs.FS, name string, obj any) error {
@@ -39,7 +38,7 @@ func ReadYml(root fs.FS, name string, obj any) error {
return nil
}
-func ReadSsz(root fs.FS, version clparams.StateVersion, name string, obj ssz.Unmarshaler) error {
+func ReadSsz(root fs.FS, version clparams2.StateVersion, name string, obj ssz.Unmarshaler) error {
bts, err := fs.ReadFile(root, name)
if err != nil {
return fmt.Errorf("couldnt read meta: %w", err)
@@ -47,16 +46,16 @@ func ReadSsz(root fs.FS, version clparams.StateVersion, name string, obj ssz.Unm
return utils.DecodeSSZSnappy(obj, bts, int(version))
}
-func ReadSszOld(root fs.FS, obj ssz.Unmarshaler, version clparams.StateVersion, name string) error {
+func ReadSszOld(root fs.FS, obj ssz.Unmarshaler, version clparams2.StateVersion, name string) error {
return ReadSsz(root, version, name, obj)
}
-func ReadBeaconState(root fs.FS, version clparams.StateVersion, name string) (*state.CachingBeaconState, error) {
+func ReadBeaconState(root fs.FS, version clparams2.StateVersion, name string) (*state.CachingBeaconState, error) {
sszSnappy, err := fs.ReadFile(root, name)
if err != nil {
return nil, err
}
- config := clparams.MainnetBeaconConfig
+ config := clparams2.MainnetBeaconConfig
testState := state.New(&config)
if err := utils.DecodeSSZSnappy(testState, sszSnappy, int(version)); err != nil {
return nil, err
@@ -64,7 +63,7 @@ func ReadBeaconState(root fs.FS, version clparams.StateVersion, name string) (*s
return testState, nil
}
-func ReadBlock(root fs.FS, version clparams.StateVersion, index int) (*cltypes.SignedBeaconBlock, error) {
+func ReadBlock(root fs.FS, version clparams2.StateVersion, index int) (*cltypes.SignedBeaconBlock, error) {
var blockBytes []byte
var err error
blockBytes, err = fs.ReadFile(root, fmt.Sprintf("blocks_%d.ssz_snappy", index))
@@ -74,14 +73,14 @@ func ReadBlock(root fs.FS, version clparams.StateVersion, index int) (*cltypes.S
if err != nil {
return nil, err
}
- blk := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
+ blk := cltypes.NewSignedBeaconBlock(&clparams2.MainnetBeaconConfig)
if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil {
return nil, err
}
return blk, nil
}
-func ReadAnchorBlock(root fs.FS, version clparams.StateVersion, name string) (*cltypes.BeaconBlock, error) {
+func ReadAnchorBlock(root fs.FS, version clparams2.StateVersion, name string) (*cltypes.BeaconBlock, error) {
var blockBytes []byte
var err error
blockBytes, err = fs.ReadFile(root, name)
@@ -91,7 +90,7 @@ func ReadAnchorBlock(root fs.FS, version clparams.StateVersion, name string) (*c
if err != nil {
return nil, err
}
- blk := cltypes.NewBeaconBlock(&clparams.MainnetBeaconConfig)
+ blk := cltypes.NewBeaconBlock(&clparams2.MainnetBeaconConfig)
if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil {
return nil, err
}
@@ -116,7 +115,7 @@ func ReadBlockSlot(root fs.FS, index int) (uint64, error) {
}
return ssz.UnmarshalUint64SSZ(blockBytes[100:108]), nil
}
-func ReadBlocks(root fs.FS, version clparams.StateVersion) ([]*cltypes.SignedBeaconBlock, error) {
+func ReadBlocks(root fs.FS, version clparams2.StateVersion) ([]*cltypes.SignedBeaconBlock, error) {
i := 0
blocks := []*cltypes.SignedBeaconBlock{}
var err error
@@ -126,7 +125,7 @@ func ReadBlocks(root fs.FS, version clparams.StateVersion) ([]*cltypes.SignedBea
if err != nil {
break
}
- blk := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig)
+ blk := cltypes.NewSignedBeaconBlock(&clparams2.MainnetBeaconConfig)
if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil {
return nil, err
}
diff --git a/tests/block_test_util.go b/tests/block_test_util.go
index 7d5296d7f6a..22a1b2b30ff 100644
--- a/tests/block_test_util.go
+++ b/tests/block_test_util.go
@@ -23,6 +23,7 @@ import (
"encoding/hex"
"encoding/json"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"reflect"
"testing"
@@ -39,7 +40,6 @@ import (
"github.com/ledgerwatch/log/v3"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
diff --git a/tests/bor/helper/miner.go b/tests/bor/helper/miner.go
index 8c6d2c40c2a..32c81726c80 100644
--- a/tests/bor/helper/miner.go
+++ b/tests/bor/helper/miner.go
@@ -113,7 +113,7 @@ func InitMiner(ctx context.Context, genesis *types.Genesis, privKey *ecdsa.Priva
return nil, nil, err
}
- downloaderConfig, err := downloadercfg.New(datadir.New(ddir), nodeCfg.Version, torrentLogLevel, downloadRate, uploadRate, utils.TorrentPortFlag.Value, utils.TorrentConnsPerFileFlag.Value, utils.TorrentDownloadSlotsFlag.Value, []string{}, "")
+ downloaderConfig, err := downloadercfg.New(datadir.New(ddir), nodeCfg.Version, torrentLogLevel, downloadRate, uploadRate, utils.TorrentPortFlag.Value, utils.TorrentConnsPerFileFlag.Value, utils.TorrentDownloadSlotsFlag.Value, []string{}, []string{}, "")
if err != nil {
return nil, nil, err
}
@@ -142,7 +142,6 @@ func InitMiner(ctx context.Context, genesis *types.Genesis, privKey *ecdsa.Priva
RPCGasCap: 50000000,
RPCTxFeeCap: 1, // 1 ether
Snapshot: ethconfig.BlocksFreezing{NoDownloader: true},
- P2PEnabled: true,
StateStream: true,
}
ethCfg.TxPool.DBDir = nodeCfg.Dirs.TxPool
diff --git a/tests/bor/mining_test.go b/tests/bor/mining_test.go
index 4568046f6b3..4ed69cd0dd4 100644
--- a/tests/bor/mining_test.go
+++ b/tests/bor/mining_test.go
@@ -12,6 +12,7 @@ import (
"time"
"github.com/holiman/uint256"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
"github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/common/fdlimit"
"github.com/ledgerwatch/erigon/core/types"
@@ -19,7 +20,6 @@ import (
"github.com/ledgerwatch/erigon/eth"
"github.com/ledgerwatch/erigon/node"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/erigon/tests/bor/helper"
"github.com/ledgerwatch/log/v3"
diff --git a/tests/erigon-ext-test/.gitignore b/tests/erigon-ext-test/.gitignore
new file mode 100644
index 00000000000..08cb523c182
--- /dev/null
+++ b/tests/erigon-ext-test/.gitignore
@@ -0,0 +1 @@
+go.sum
diff --git a/tests/erigon-ext-test/go.mod b/tests/erigon-ext-test/go.mod
new file mode 100644
index 00000000000..64cb7ad1672
--- /dev/null
+++ b/tests/erigon-ext-test/go.mod
@@ -0,0 +1,2 @@
+// this is a dummy file needed to exclude this folder from the root folder unit tests suite
+// the actual go.mod for the test is generated by test.sh from go.mod.template
diff --git a/tests/erigon-ext-test/go.mod.template b/tests/erigon-ext-test/go.mod.template
new file mode 100644
index 00000000000..515b3b14281
--- /dev/null
+++ b/tests/erigon-ext-test/go.mod.template
@@ -0,0 +1,9 @@
+module example.com/erigon-ext-test
+
+go 1.20
+
+require github.com/ledgerwatch/erigon $COMMIT_SHA
+
+replace github.com/ledgerwatch/erigon-lib => github.com/ledgerwatch/erigon/erigon-lib $COMMIT_SHA
+
+require github.com/ethereum/go-ethereum v1.13.3
diff --git a/tests/erigon-ext-test/main.go b/tests/erigon-ext-test/main.go
new file mode 100644
index 00000000000..b8322f5973e
--- /dev/null
+++ b/tests/erigon-ext-test/main.go
@@ -0,0 +1,18 @@
+package main
+
+import (
+ geth_params "github.com/ethereum/go-ethereum/params"
+ // geth_crypto "github.com/ethereum/go-ethereum/crypto"
+ erigon_lib_common "github.com/ledgerwatch/erigon-lib/common"
+ erigon_crypto "github.com/ledgerwatch/erigon/crypto"
+ erigon_params "github.com/ledgerwatch/erigon/params"
+)
+
+func main() {
+ println("Erigon version: ", erigon_params.Version)
+ println("geth version: ", geth_params.Version)
+ println("Erigon lib common eth Wei: ", erigon_lib_common.Wei)
+ println("Erigon crypto secp256k1 S256 BitSize: ", erigon_crypto.S256().Params().BitSize)
+ // not working due to duplicate symbols errors
+ // println("geth crypto secp256k1 S256 BitSize: ", geth_crypto.S256().Params().BitSize)
+}
diff --git a/tests/erigon-ext-test/test.sh b/tests/erigon-ext-test/test.sh
new file mode 100755
index 00000000000..362028e5fe7
--- /dev/null
+++ b/tests/erigon-ext-test/test.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+COMMIT_SHA="$1"
+
+sed "s/\$COMMIT_SHA/$COMMIT_SHA/" go.mod.template > go.mod
+
+rm -f go.sum
+go mod tidy
+
+go run main.go
diff --git a/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json b/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json
index 0dc1716c15d..3caca4ffc53 100644
--- a/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json
+++ b/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json
@@ -1,7 +1,7 @@
{
"000-fork=Berlin": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md",
"reference-spec-version": "c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534"
},
@@ -112,7 +112,7 @@
},
"001-fork=London": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md",
"reference-spec-version": "c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json
index 877a2b82909..8948348c581 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tload": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -131,7 +131,7 @@
},
"001-fork=Cancun-tstore_tload": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -261,7 +261,7 @@
},
"002-fork=Cancun-tstore_cold": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -391,7 +391,7 @@
},
"003-fork=Cancun-tstore_warm": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json
index 9354bfda7a1..875a9fc7386 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json
index 0cf28aaf39e..2df3e16f22b 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json
index 51b6255ea0c..b6acd339d49 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json
index 8893182d543..8c19ec02467 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json
index b4dc0d5271d..ad4d26f8689 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-only_constructor_code-create": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -142,7 +142,7 @@
},
"001-fork=Cancun-only_constructor_code-create2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -283,7 +283,7 @@
},
"002-fork=Cancun-in_constructor_and_deployed_code-create": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -424,7 +424,7 @@
},
"003-fork=Cancun-in_constructor_and_deployed_code-create2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -565,7 +565,7 @@
},
"004-fork=Cancun-across_constructor_and_deployed_code_v0-create": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -707,7 +707,7 @@
},
"005-fork=Cancun-across_constructor_and_deployed_code_v0-create2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -849,7 +849,7 @@
},
"006-fork=Cancun-across_constructor_and_deployed_code_v1-create": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -992,7 +992,7 @@
},
"007-fork=Cancun-across_constructor_and_deployed_code_v1-create2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1135,7 +1135,7 @@
},
"008-fork=Cancun-no_constructor_code-create": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1276,7 +1276,7 @@
},
"009-fork=Cancun-no_constructor_code-create2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json
index 6bbbe25cecd..2e98e1947ae 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -146,7 +146,7 @@
},
"001-fork=Cancun-staticcall_cant_call_tstore": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -288,7 +288,7 @@
},
"002-fork=Cancun-staticcall_cant_call_tstore_with_stack_underflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -430,7 +430,7 @@
},
"003-fork=Cancun-staticcalled_context_can_call_tload": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -573,7 +573,7 @@
},
"004-fork=Cancun-callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -719,7 +719,7 @@
},
"005-fork=Cancun-delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -865,7 +865,7 @@
},
"006-fork=Cancun-call_with_revert": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1008,7 +1008,7 @@
},
"007-fork=Cancun-call_with_invalid": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1151,7 +1151,7 @@
},
"008-fork=Cancun-call_with_stack_overflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1294,7 +1294,7 @@
},
"009-fork=Cancun-call_with_tstore_stack_underflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1437,7 +1437,7 @@
},
"010-fork=Cancun-call_with_tstore_stack_underflow_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1580,7 +1580,7 @@
},
"011-fork=Cancun-call_with_tload_stack_underflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1723,7 +1723,7 @@
},
"012-fork=Cancun-call_with_out_of_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1866,7 +1866,7 @@
},
"013-fork=Cancun-call_with_out_of_gas_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -2009,7 +2009,7 @@
},
"014-fork=Cancun-callcode_with_revert": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -2152,7 +2152,7 @@
},
"015-fork=Cancun-callcode_with_invalid": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -2295,7 +2295,7 @@
},
"016-fork=Cancun-callcode_with_stack_overflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -2438,7 +2438,7 @@
},
"017-fork=Cancun-callcode_with_tstore_stack_underflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -2581,7 +2581,7 @@
},
"018-fork=Cancun-callcode_with_tstore_stack_underflow_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -2724,7 +2724,7 @@
},
"019-fork=Cancun-callcode_with_tload_stack_underflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -2867,7 +2867,7 @@
},
"020-fork=Cancun-callcode_with_out_of_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -3010,7 +3010,7 @@
},
"021-fork=Cancun-callcode_with_out_of_gas_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -3153,7 +3153,7 @@
},
"022-fork=Cancun-delegatecall_with_revert": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -3296,7 +3296,7 @@
},
"023-fork=Cancun-delegatecall_with_invalid": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -3439,7 +3439,7 @@
},
"024-fork=Cancun-delegatecall_with_stack_overflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -3582,7 +3582,7 @@
},
"025-fork=Cancun-delegatecall_with_tstore_stack_underflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -3725,7 +3725,7 @@
},
"026-fork=Cancun-delegatecall_with_tstore_stack_underflow_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -3868,7 +3868,7 @@
},
"027-fork=Cancun-delegatecall_with_tload_stack_underflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -4011,7 +4011,7 @@
},
"028-fork=Cancun-delegatecall_with_out_of_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -4154,7 +4154,7 @@
},
"029-fork=Cancun-delegatecall_with_out_of_gas_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json
index 4f5cde46ceb..983c53f96ba 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tstore_in_reentrant_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -133,7 +133,7 @@
},
"001-fork=Cancun-tload_after_reentrant_tstore": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -265,7 +265,7 @@
},
"002-fork=Cancun-manipulate_in_reentrant_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -398,7 +398,7 @@
},
"003-fork=Cancun-tstore_in_call_then_tload_return_in_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -532,7 +532,7 @@
},
"004-fork=Cancun-tstore_before_revert_has_no_effect": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -663,7 +663,7 @@
},
"005-fork=Cancun-revert_undoes_all": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -794,7 +794,7 @@
},
"006-fork=Cancun-revert_undoes_tstorage_after_successful_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -926,7 +926,7 @@
},
"007-fork=Cancun-tstore_before_invalid_has_no_effect": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1057,7 +1057,7 @@
},
"008-fork=Cancun-invalid_undoes_all": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -1188,7 +1188,7 @@
},
"009-fork=Cancun-invalid_undoes_tstorage_after_successful_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json
index 14de3b2a5c5..5f2f0c50c65 100644
--- a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json
+++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tload_after_selfdestruct_pre_existing_contract": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -157,7 +157,7 @@
},
"001-fork=Cancun-tload_after_selfdestruct_new_contract": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -302,7 +302,7 @@
},
"002-fork=Cancun-tload_after_inner_selfdestruct_pre_existing_contract": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -457,7 +457,7 @@
},
"003-fork=Cancun-tload_after_inner_selfdestruct_new_contract": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -601,7 +601,7 @@
},
"004-fork=Cancun-tstore_after_selfdestruct_pre_existing_contract": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
@@ -758,7 +758,7 @@
},
"005-fork=Cancun-tstore_after_selfdestruct_new_contract": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md",
"reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json
index 90d0866f213..5099a8041cb 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-call_type=CALL-call_value=1-valid_input=True-call_gas=100000-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -131,7 +131,7 @@
},
"001-fork=Cancun-call_type=CALL-call_value=1-valid_input=True-call_gas=100001-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -261,7 +261,7 @@
},
"002-fork=Cancun-call_type=CALL-call_value=0-valid_input=True-call_gas=100000-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -391,7 +391,7 @@
},
"003-fork=Cancun-call_type=CALL-call_value=0-valid_input=True-call_gas=100001-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -521,7 +521,7 @@
},
"004-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=100000-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -646,7 +646,7 @@
},
"005-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=100001-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -771,7 +771,7 @@
},
"006-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=99999-valid_call=False": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -896,7 +896,7 @@
},
"007-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=100000-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1021,7 +1021,7 @@
},
"008-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=100001-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1146,7 +1146,7 @@
},
"009-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=99999-valid_call=False": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1271,7 +1271,7 @@
},
"010-fork=Cancun-call_type=STATICCALL-call_value=0-valid_input=True-call_gas=100000-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1401,7 +1401,7 @@
},
"011-fork=Cancun-call_type=STATICCALL-call_value=0-valid_input=True-call_gas=100001-valid_call=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json
index 12c44a34d05..9debe5ffa1a 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=12-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -131,7 +131,7 @@
},
"001-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -261,7 +261,7 @@
},
"002-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -391,7 +391,7 @@
},
"003-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -521,7 +521,7 @@
},
"004-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=12-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -659,7 +659,7 @@
},
"005-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -797,7 +797,7 @@
},
"006-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -935,7 +935,7 @@
},
"007-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1073,7 +1073,7 @@
},
"008-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=12-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1215,7 +1215,7 @@
},
"009-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1357,7 +1357,7 @@
},
"010-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1499,7 +1499,7 @@
},
"011-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1641,7 +1641,7 @@
},
"012-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=12-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1791,7 +1791,7 @@
},
"013-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1941,7 +1941,7 @@
},
"014-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2091,7 +2091,7 @@
},
"015-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2241,7 +2241,7 @@
},
"016-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=12-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2383,7 +2383,7 @@
},
"017-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2525,7 +2525,7 @@
},
"018-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2667,7 +2667,7 @@
},
"019-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2809,7 +2809,7 @@
},
"020-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=12-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2959,7 +2959,7 @@
},
"021-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -3109,7 +3109,7 @@
},
"022-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -3259,7 +3259,7 @@
},
"023-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json
index 74fb6495f68..635f3b36aef 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-auto_access_list=False-beacon_root=12-timestamp=12": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -131,7 +131,7 @@
},
"001-fork=Cancun-auto_access_list=False-beacon_root=4294967296-timestamp=4294967296": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -261,7 +261,7 @@
},
"002-fork=Cancun-auto_access_list=False-beacon_root=18446744073709551614-timestamp=18446744073709551614": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -391,7 +391,7 @@
},
"003-fork=Cancun-auto_access_list=False-beacon_root=18446744073709551615-timestamp=18446744073709551615": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -521,7 +521,7 @@
},
"004-fork=Cancun-auto_access_list=True-beacon_root=12-timestamp=12": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -659,7 +659,7 @@
},
"005-fork=Cancun-auto_access_list=True-beacon_root=4294967296-timestamp=4294967296": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -797,7 +797,7 @@
},
"006-fork=Cancun-auto_access_list=True-beacon_root=18446744073709551614-timestamp=18446744073709551614": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -935,7 +935,7 @@
},
"007-fork=Cancun-auto_access_list=True-beacon_root=18446744073709551615-timestamp=18446744073709551615": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json
index 528e381720a..ca66ec74c4f 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-timestamp=12": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json
index 6f03c204311..2266f06b8ff 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-empty_calldata": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -126,7 +126,7 @@
},
"001-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-one_byte": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -251,7 +251,7 @@
},
"002-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-31_bytes": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -376,7 +376,7 @@
},
"003-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-33_bytes": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -501,7 +501,7 @@
},
"004-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-1024_bytes": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json
index 25ac315fa06..e523b330cf1 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-zero_calldata": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json
index a96dd5ef260..91bc09e2a9f 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tx_type=3-call_beacon_root_contract=True-auto_access_list=False": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -130,7 +130,7 @@
},
"001-fork=Cancun-tx_type=3-call_beacon_root_contract=True-auto_access_list=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -267,7 +267,7 @@
},
"002-fork=Cancun-tx_type=2-call_beacon_root_contract=True-auto_access_list=False": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -392,7 +392,7 @@
},
"003-fork=Cancun-tx_type=2-call_beacon_root_contract=True-auto_access_list=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -525,7 +525,7 @@
},
"004-fork=Cancun-tx_type=1-call_beacon_root_contract=True-auto_access_list=False": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -649,7 +649,7 @@
},
"005-fork=Cancun-tx_type=1-call_beacon_root_contract=True-auto_access_list=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -781,7 +781,7 @@
},
"006-fork=Cancun-tx_type=0-call_beacon_root_contract=True-auto_access_list=False": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -904,7 +904,7 @@
},
"007-fork=Cancun-tx_type=0-call_beacon_root_contract=True-auto_access_list=True": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json
index 5dbb413f80e..8c652984ec5 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-deploy_on_shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -221,7 +221,7 @@
},
"001-fork=ShanghaiToCancunAtTime15k-deploy_on_cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json
index 60f2b97dc10..c78b55ec797 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-block_count=20-fork_transition": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json
index ee6a52a9e90..a1c1b3a93fa 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-block_count=10-buffer_wraparound": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -932,7 +932,7 @@
},
"001-fork=Cancun-block_count=10-buffer_wraparound_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -1755,7 +1755,7 @@
},
"002-fork=Cancun-block_count=10-buffer_wraparound_overwrite_high_timestamp": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -2578,7 +2578,7 @@
},
"003-fork=Cancun-block_count=10-buffer_wraparound_no_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
@@ -3509,7 +3509,7 @@
},
"004-fork=Cancun-block_count=10-buffer_wraparound_no_overwrite_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json
index 6d6c1d07ae7..5f37e10ef55 100644
--- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json
+++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-timestamp=15000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md",
"reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json
index f891b4d1264..65ac657924d 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATALOAD": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -130,7 +130,7 @@
},
"001-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATASIZE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -259,7 +259,7 @@
},
"002-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATACOPY": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -388,7 +388,7 @@
},
"003-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATALOAD": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -519,7 +519,7 @@
},
"004-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATASIZE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -650,7 +650,7 @@
},
"005-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATACOPY": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -781,7 +781,7 @@
},
"006-fork=Cancun-tx_gas=500000-word-opcode=CALLDATALOAD": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -912,7 +912,7 @@
},
"007-fork=Cancun-tx_gas=500000-word-opcode=CALLDATASIZE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1043,7 +1043,7 @@
},
"008-fork=Cancun-tx_gas=500000-word-opcode=CALLDATACOPY": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json
index 3f9a04d86be..97d1e806574 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -132,7 +132,7 @@
},
"001-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=1-tx_max_priority_fee_per_gas=2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -269,7 +269,7 @@
},
"002-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=3-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -400,7 +400,7 @@
},
"003-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=3-tx_max_priority_fee_per_gas=2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json
index 6de67ef065c..f58ccba85b2 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tx_gas=500000-opcode=ORIGIN": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -132,7 +132,7 @@
},
"001-fork=Cancun-tx_gas=500000-opcode=CALLER": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json
index b8acc7070ed..5570ec397a4 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tx_gas=500000-tx_value=0-opcode=CALLVALUE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -130,7 +130,7 @@
},
"001-fork=Cancun-tx_gas=500000-tx_value=1-opcode=CALLVALUE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -261,7 +261,7 @@
},
"002-fork=Cancun-tx_gas=500000-tx_value=1000000000000000000-opcode=CALLVALUE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json
index 51fd0763957..bba8a720985 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-no_blob_tx": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -31,7 +31,50 @@
{
"rlp": "0xf90287f90217a0e65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0",
"expectException": "tx type 3 not allowed pre-Cancun",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138df",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x04006395f6fe8d5960e2bdcd4a8bc2f9c0dc2003c3a795ff86ea9101180bd043"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [],
+ "v": "0x00",
+ "r": "0xde3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cd",
+ "s": "0x6c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138df",
@@ -67,7 +110,7 @@
},
"001-fork=ShanghaiToCancunAtTime15k-one_blob_tx": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -97,7 +140,52 @@
{
"rlp": "0xf902a8f90217a093ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0",
"expectException": "tx type 3 not allowed pre-Cancun",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x93ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x4193725c2de2ac0fa6e4d966b1303e783d4e7236ba6d9a1c03c318caf5f732ab"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x93ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json
index 11d30f52152..34369d0daaf 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d1f90240a0c545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c9242c8f50b41094b61604792d98551c9249b9be1ea8722bc30cc2222bfba0f4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0dca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654a06f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095ec0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xc9242c8f50b41094b61604792d98551c9249b9be1ea8722bc30cc2222bfba0f4",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5871d7b5eb50ab173fb6b9911f23a5d2864ceb359a9dd5e97b0805dfa8c95ccb"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xdca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654",
+ "s": "0x6f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133",
@@ -70,7 +118,7 @@
},
"001-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -103,7 +151,55 @@
{
"rlp": "0xf902d1f90240a0f5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d80cac34e78f745963294186bd4164282f9b64099933026e26a61bb4d4467f14a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a00a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2ea070df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733dc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xd80cac34e78f745963294186bd4164282f9b64099933026e26a61bb4d4467f14",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9fd9f91f32aeee8ba8886d2bfff94ad49503042d56e217c39105f6659cff45d9"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x0a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2e",
+ "s": "0x70df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08",
@@ -139,7 +235,7 @@
},
"002-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -172,7 +268,55 @@
{
"rlp": "0xf902d1f90240a0cb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x63fec1369cd9d65b290ae94fc996e8ebf2c79051c6bf35141dd04fae3e4ed933"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91",
@@ -208,7 +352,7 @@
},
"003-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -241,7 +385,55 @@
{
"rlp": "0xf902d1f90240a0edbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04ffeb8ef2784bd8ea71948d0ec13da29f84cf6fadbd4a6f5ce0238cdeaf8e5d3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99a02ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xedbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x4ffeb8ef2784bd8ea71948d0ec13da29f84cf6fadbd4a6f5ce0238cdeaf8e5d3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4a749a10981b78fedf237acfb699f534666d1555d62b2ba0bdab803bf6000112"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99",
+ "s": "0x2ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xedbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65",
@@ -277,7 +469,7 @@
},
"004-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -310,7 +502,55 @@
{
"rlp": "0xf902d1f90240a054b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07008b41fbcbee97991b922a5556a408db17b288036ac5803aa29eb7b9cd241a4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25a07b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3ec0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x54b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7008b41fbcbee97991b922a5556a408db17b288036ac5803aa29eb7b9cd241a4",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x6d0de65fb585320dd2ab768da5c0b17ce53697e15ad4b4c72514da697cf43a11"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x8ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25",
+ "s": "0x7b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x54b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7",
@@ -346,7 +586,7 @@
},
"005-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -379,7 +619,55 @@
{
"rlp": "0xf902d1f90240a04a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0777d6033b30371032625cc3787873ca0e65efc78a7ce075c281db429d56ba27ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a094528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151a0403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x777d6033b30371032625cc3787873ca0e65efc78a7ce075c281db429d56ba27e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xbcaf62ad7adcac2d3e739312761ba0c469b2e2c2259e8eef30208e413640a6fd"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x94528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151",
+ "s": "0x403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4",
@@ -415,7 +703,7 @@
},
"006-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -448,7 +736,55 @@
{
"rlp": "0xf902d1f90240a00c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b71bc722a367125fd65879c1934564af8091c7bf0eba57939353de343a6cd1e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000080a014ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfea04133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x0c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xb71bc722a367125fd65879c1934564af8091c7bf0eba57939353de343a6cd1e8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2263a62b1eb531557e29502ea5acad6387adb55775cc8ded795fbf56f5dfbdf1"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x14ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfe",
+ "s": "0x4133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x0c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945",
@@ -484,7 +820,7 @@
},
"007-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -517,7 +853,55 @@
{
"rlp": "0xf902d1f90240a05f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318deda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa065f50dd72fefb128ce43de9a0ba580003e8a188f755103b31bdd1b033eddb5f6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2a07c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318ded",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x65f50dd72fefb128ce43de9a0ba580003e8a188f755103b31bdd1b033eddb5f6",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1c78b20fdbd1dc8ec0a2c1b0be30f65af689fb91aa618d5a83973441e1ccb9a6"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2",
+ "s": "0x7c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318ded",
@@ -553,7 +937,7 @@
},
"008-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -586,7 +970,55 @@
{
"rlp": "0xf902d1f90240a0b6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa082e4d312fdb96c04bf45cc228cc1be1dbf8cd18623e1bd99465217aab18ef61fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0ebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24ea0247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x82e4d312fdb96c04bf45cc228cc1be1dbf8cd18623e1bd99465217aab18ef61f",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x99b0d75c28d1bc15bf4bb38d4de13175c0f3660c6debd80654a589a26f64e2c3"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24e",
+ "s": "0x247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263",
@@ -622,7 +1054,7 @@
},
"009-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -655,7 +1087,55 @@
{
"rlp": "0xf902d1f90240a03417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04b551441257eb452452568b14f1ff236e2dccbbe956161e6c19d3f36c732d5d4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4a056036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x3417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x4b551441257eb452452568b14f1ff236e2dccbbe956161e6c19d3f36c732d5d4",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb5fdb93379722e1e35af5e05844f6d69e3e01b54980ae4304aebd26896f59f1b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x8dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4",
+ "s": "0x56036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x3417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4",
@@ -691,7 +1171,7 @@
},
"010-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -724,7 +1204,55 @@
{
"rlp": "0xf902d1f90240a0c2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f9af1458b6dd07b4932dd4e6dd3592149f6b18ab9744f6d1bbab006f26b30f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a021f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41a07fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7cac0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7f9af1458b6dd07b4932dd4e6dd3592149f6b18ab9744f6d1bbab006f26b30f2",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x74b8e5e8038fdaa43f44636e54d87236fd5deed09a898a07800d0c9680c44d37"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x21f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41",
+ "s": "0x7fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7ca",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6",
@@ -760,7 +1288,7 @@
},
"011-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -793,7 +1321,55 @@
{
"rlp": "0xf902d1f90240a0001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc1d72e9f780af7a7e400986c0d9af590e7687e57052dca87b6ced06cbff70d3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000080a03b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406a03370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bfc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdad",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbc1d72e9f780af7a7e400986c0d9af590e7687e57052dca87b6ced06cbff70d3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x53f9a89cddbe73f2f564875ccc9d4c4f0f111d253834d66283e44925b68d3149"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x3b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406",
+ "s": "0x3370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bf",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdad",
@@ -829,7 +1405,7 @@
},
"012-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -862,7 +1438,55 @@
{
"rlp": "0xf902d1f90240a0c24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052ccf73efe5611b172565419ae2dc840d7dd3e4b815b98ee88152156de4d5a73a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0eb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2eada073a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfdc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x52ccf73efe5611b172565419ae2dc840d7dd3e4b815b98ee88152156de4d5a73",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1ec48fcf4a023a2bb4b3683c273720b664a98ca3667c348966275542a3700164"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xeb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2ead",
+ "s": "0x73a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfd",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4",
@@ -898,7 +1522,7 @@
},
"013-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -931,7 +1555,55 @@
{
"rlp": "0xf902d1f90240a056ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fc7a205bddc32e8f67536b9078e909ad304f82f334e61db84deef20a88e85533a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000001a08a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778fa06c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3bc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x56ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xfc7a205bddc32e8f67536b9078e909ad304f82f334e61db84deef20a88e85533",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9cc2846905dbf99de8eddefb7b378a2565d164f7b3afc826eaac965b05bb6bbc"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x8a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778f",
+ "s": "0x6c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x56ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1c",
@@ -967,7 +1639,7 @@
},
"014-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1000,7 +1672,55 @@
{
"rlp": "0xf902d1f90240a0349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e18feb025d507b6ec7cc0ffcda7bfe6fda537704d81a8671304c1204ecbd25a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000001a001f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400a03e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe18feb025d507b6ec7cc0ffcda7bfe6fda537704d81a8671304c1204ecbd25a7",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7a549955d3fbbf706405b8dd4126e796fdaf600223fb3344ec298284dc0bd25f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x01f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400",
+ "s": "0x3e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5",
@@ -1036,7 +1756,7 @@
},
"015-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1069,7 +1789,55 @@
{
"rlp": "0xf902d1f90240a0be453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081370790b3682e0055a5eb8618b816d54c7593ad7a8aa31f7524a3cab8a71991a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06ea03e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0cc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xbe453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947f",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x81370790b3682e0055a5eb8618b816d54c7593ad7a8aa31f7524a3cab8a71991",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xab2cd8bef304457ba12de032ed9ffc7965e59602b4180c6abaff4462aea822e1"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06e",
+ "s": "0x3e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0c",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xbe453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947f",
@@ -1105,7 +1873,7 @@
},
"016-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1138,7 +1906,55 @@
{
"rlp": "0xf902d1f90240a0adadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f00628369585ecbdc4b1bff5758c773f3c1278bfb0d6fafa5d4c9a25e9c5897ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0bb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50ea03f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xadadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf00628369585ecbdc4b1bff5758c773f3c1278bfb0d6fafa5d4c9a25e9c5897c",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x36945fbc48a59f5bc7bb7efa44e2e240a06cdab48f549441b8dbc17c5bac9666"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xbb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50e",
+ "s": "0x3f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xadadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484",
@@ -1174,7 +1990,7 @@
},
"017-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1207,7 +2023,55 @@
{
"rlp": "0xf902d1f90240a0f6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b7c491d3d922a53f6b0f6b9d2c8bc887deeaa9f29f0b9d8b2e8d50b7bddb78cca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a00f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6a0492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xb7c491d3d922a53f6b0f6b9d2c8bc887deeaa9f29f0b9d8b2e8d50b7bddb78cc",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5bad821e695bdcd97253b5a2486d532e6ca1767a140ed198c62fe387dcbd282d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x0f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6",
+ "s": "0x492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1",
@@ -1243,7 +2107,7 @@
},
"018-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1276,7 +2140,55 @@
{
"rlp": "0xf902d1f90240a0e9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a3985bd9500781c733d796064462b78f3aa3f19177aa377018e4fba415efade9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000080a02e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cba079ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafac0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xa3985bd9500781c733d796064462b78f3aa3f19177aa377018e4fba415efade9",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x268a4b2527b969e414b1c67dba41532671eb666b9e44c91918f8c8d6b293f753"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x2e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cb",
+ "s": "0x79ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafa",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590",
@@ -1312,7 +2224,7 @@
},
"019-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1345,7 +2257,55 @@
{
"rlp": "0xf902d1f90240a0a53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e5571bb0ffacccd76462434ac17ac8b3954418880e7819852b029d628b06139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0a1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22a070371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00ac0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x6e5571bb0ffacccd76462434ac17ac8b3954418880e7819852b029d628b06139",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x62a0a02dd9f08d3cacf024cba23be051c8114ff45e59d8533acc369c7cbb3f93"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22",
+ "s": "0x70371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022c",
@@ -1381,7 +2341,7 @@
},
"020-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1414,7 +2374,55 @@
{
"rlp": "0xf902d1f90240a07a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e93764772a583d55d6403ca28da866ea6007f8a37080028a3f6d44859d80923a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a01fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1a06abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x6e93764772a583d55d6403ca28da866ea6007f8a37080028a3f6d44859d80923",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3cba9a25901dbce51063886de82007dc6decfe3cb7a3548220303006d4f9bfa3"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x1fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1",
+ "s": "0x6abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2e",
@@ -1450,7 +2458,7 @@
},
"021-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1483,7 +2491,55 @@
{
"rlp": "0xf902d1f90240a002facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa015c92349bd0c81ae2f5e019133fb1a1564fab289f2b55b623c31913b7e923c30a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3a05e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7bc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x02facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x15c92349bd0c81ae2f5e019133fb1a1564fab289f2b55b623c31913b7e923c30",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xdf6bbba3b8fb0b11600b00cf42af2ca9171e7edbcade8e580537852f870f9d64"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3",
+ "s": "0x5e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x02facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171",
@@ -1519,7 +2575,7 @@
},
"022-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1552,7 +2608,55 @@
{
"rlp": "0xf902d1f90240a01d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09134286dee33951d7fceedd1a22b470dfa9633734fec342ba3491c2fc876f67aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0c1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336ea0466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x9134286dee33951d7fceedd1a22b470dfa9633734fec342ba3491c2fc876f67a",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1eb5d56ef9197a41dbbf4f98c8f9aff0bf8840712f8cf954386952265b7e45a8"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xc1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336e",
+ "s": "0x466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145d",
@@ -1588,7 +2692,7 @@
},
"023-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1621,7 +2725,55 @@
{
"rlp": "0xf902d1f90240a07af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b6ceaf55501ba0b4ee4a3c1abcf5cb2aa6b55521ad188aa40e3fb26c50b838aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846a02cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x6b6ceaf55501ba0b4ee4a3c1abcf5cb2aa6b55521ad188aa40e3fb26c50b838a",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf1e68d96e177cafd738880a628b54592a7a000ea40f2b77b68f8e9d072298fa5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x64",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846",
+ "s": "0x2cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02",
@@ -1657,7 +2809,7 @@
},
"024-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1690,7 +2842,55 @@
{
"rlp": "0xf902d3f90240a097c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bf7914d8938d7d51ddc2a74d5ac47eb9065524225c5f8d14f29fd234083f5c1ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a092c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241ba0378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x97c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbf7914d8938d7d51ddc2a74d5ac47eb9065524225c5f8d14f29fd234083f5c1b",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x83733d877b5873538f3056a7220f1dcf938e81cc62a6c43bc3183d742ee7b247"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x92c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241b",
+ "s": "0x378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x97c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460d",
@@ -1726,7 +2926,7 @@
},
"025-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1759,7 +2959,55 @@
{
"rlp": "0xf902d3f90240a0da6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03bf4de86f206b19a325e37cecae852b2d296ea37fa158c2b855daff101408bb5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a05727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545fa03c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xda6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3bf4de86f206b19a325e37cecae852b2d296ea37fa158c2b855daff101408bb5",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xfbd3dcd93809e0275f20b389d029eb97ba5e0c0ee3e66065f6eba50e95c41389"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545f",
+ "s": "0x3c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xda6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85",
@@ -1795,7 +3043,7 @@
},
"026-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1828,7 +3076,55 @@
{
"rlp": "0xf902d3f90240a03bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0893769b3f99f28f4262b247595313b3d355a56e7f36673d66dfe2b2a376c799ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a060bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcda076d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858ac0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x3bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x893769b3f99f28f4262b247595313b3d355a56e7f36673d66dfe2b2a376c799e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9fa8c515faa3df94527fdbc620dd628241c7e3cec70d6dd5b03834aaf89aa0e8"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x60bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcd",
+ "s": "0x76d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x3bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67a",
@@ -1864,7 +3160,7 @@
},
"027-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1897,7 +3193,55 @@
{
"rlp": "0xf902d3f90240a0c94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0be78a57bfc1e7a35b130bd1bc71db1166124d38d6fdca1e9888ab0a2c8be201ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a088e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206a074dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbe78a57bfc1e7a35b130bd1bc71db1166124d38d6fdca1e9888ab0a2c8be201c",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x357e31f82e51fd33b738dcaa6ec1aa97c9653426066298a6442d5bf9eb1967a7"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x88e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206",
+ "s": "0x74dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2",
@@ -1933,7 +3277,7 @@
},
"028-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1966,7 +3310,55 @@
{
"rlp": "0xf902d3f90240a0e063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a33d28c1cc3ee2f227377efcee55be86b43800dbc6eab900a4670624ec0d976a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a013a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016dfa00eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7a33d28c1cc3ee2f227377efcee55be86b43800dbc6eab900a4670624ec0d976",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0e2781721ff7952ef02d5784be2f651dee786400668f153936eed2b71dceb511"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x13a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016df",
+ "s": "0x0eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837",
@@ -2002,7 +3394,7 @@
},
"029-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2035,7 +3427,55 @@
{
"rlp": "0xf902d3f90240a07ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0669d8d6bd70c11db837f5dfb28d1ca5792d063681ab928ad5c1415f8c8e0af4ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a01df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddcaa0537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x669d8d6bd70c11db837f5dfb28d1ca5792d063681ab928ad5c1415f8c8e0af4b",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb97ba869eabf49e94b8f7c3398ace035ca33253cd8c58d8ad1fb1e4995d107df"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x1df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddca",
+ "s": "0x537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959",
@@ -2071,7 +3511,7 @@
},
"030-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2104,7 +3544,55 @@
{
"rlp": "0xf902d3f90240a0c2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f58443941ac0a908cd526fa8804998f433402f13fdde54fde99ebb1ea0415376a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a0f5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1a034cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf58443941ac0a908cd526fa8804998f433402f13fdde54fde99ebb1ea0415376",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0bcb08ef45be02565213f9997de77a4d6d36bf35f3142051f4df5e5f25807617"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xf5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1",
+ "s": "0x34cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8",
@@ -2140,7 +3628,7 @@
},
"031-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2173,7 +3661,55 @@
{
"rlp": "0xf902d3f90240a0443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a752a92094a36ebb85761a45b5f6b2b825263ea02b6c895022670f3b123ddcea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0f3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9a05f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4decc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7a752a92094a36ebb85761a45b5f6b2b825263ea02b6c895022670f3b123ddce",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5bd1a963e26568b71207e445ab5a81aa06936ca33ca9b12b1ffa2850373c61ba"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x00",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xf3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9",
+ "s": "0x5f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4dec",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46c",
@@ -2209,7 +3745,7 @@
},
"032-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2242,7 +3778,55 @@
{
"rlp": "0xf902d3f90240a0984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0af7f40459703e6cb534fa48d7f1a34cea129226177931a509aa6bfe07910a344a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a051f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917ba03e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0dc0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xaf7f40459703e6cb534fa48d7f1a34cea129226177931a509aa6bfe07910a344",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x47ce461e8de2b279018e0ce4a0c33e44a83c2f5a7fe47c8b07ceab555f596d7a"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x51f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917b",
+ "s": "0x3e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752",
@@ -2278,7 +3862,7 @@
},
"033-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2311,7 +3895,55 @@
{
"rlp": "0xf902d3f90240a0b97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0275b12bac5998557e45f795120050125d75f31be1de4c4949b557e34c129e617a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a016e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfeca03694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189df",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x275b12bac5998557e45f795120050125d75f31be1de4c4949b557e34c129e617",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd5c072305cef9e407f2044ba90283a38333099ad333cc1a6f715b8830fd080a1"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x16e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfec",
+ "s": "0x3694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189df",
@@ -2347,7 +3979,7 @@
},
"034-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2380,7 +4012,55 @@
{
"rlp": "0xf902d3f90240a0ade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e40dbd3ab14035dbe96096f431cd0434c7c81d1b6e094ec3c9ce1dbdd319ea56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196a06302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe40dbd3ab14035dbe96096f431cd0434c7c81d1b6e094ec3c9ce1dbdd319ea56",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa2038bd59ca1f2fef42c3c6e0867c2628906573e2a810ae972365fdd55927481"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196",
+ "s": "0x6302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789",
@@ -2416,7 +4096,7 @@
},
"035-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2449,7 +4129,55 @@
{
"rlp": "0xf902d3f90240a066c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a4beda4b14cef0e60289081ce27645593ab140f44a43e2fe6edccd9ffb5cfe5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a07285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dda056aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409c0c0",
"expectException": "insufficient_account_balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x66c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7a4beda4b14cef0e60289081ce27645593ab140f44a43e2fe6edccd9ffb5cfe5",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa0cd91251370ddc7983f8a3adae645e48a6532bbee0dbf5514668511d81ce9e9"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x08",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x01",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x2710",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x7285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dd",
+ "s": "0x56aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x66c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657d",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json
index 9af826fef9b..5d360745e2d 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,155 @@
{
"rlp": "0xf90587f90243a0caeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05d03459b41302d6a781e2cfebd2af499c0949dc7dc662f2c07119b532b717e3ba03661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9033cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xcaeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x5d03459b41302d6a781e2cfebd2af499c0949dc7dc662f2c07119b532b717e3b",
+ "transactionsTrie": "0x3661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350",
+ "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x019a28",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd3b79e4b19bff50650f74b36b70764e9e530db070174403c0a788658bcb3946c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x05",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4",
+ "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xcaeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7",
@@ -70,7 +218,7 @@
},
"001-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -103,7 +251,135 @@
{
"rlp": "0xf904fdf90243a046bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02a0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902b2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x46bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x97aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02",
+ "transactionsTrie": "0xe1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2fd5ead209659fa82cfb45ba38172447c3c04266b27b7587640680ad2309c0d6"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x46bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0d",
@@ -139,7 +415,7 @@
},
"002-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -172,7 +448,136 @@
{
"rlp": "0xf9051ff90243a0bbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee6c2ded7de9a12ace1ec116ec4492d0cf142a856435e23ce443d3fa70ddce0aa0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xee6c2ded7de9a12ace1ec116ec4492d0cf142a856435e23ce443d3fa70ddce0a",
+ "transactionsTrie": "0xe1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xafe5c55a9ae563c79cfb0b16940fb2ff6abdc29f2af264917e0210350af6531c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0xf767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8c",
+ "s": "0x7f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5",
@@ -208,7 +613,7 @@
},
"003-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -241,7 +646,115 @@
{
"rlp": "0xf90472f90242a0d67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90228b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xd67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0",
+ "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2e3c0f0100aa0dfa39d50a87e7add279865ec2e0d996e759b6b9e942e060f000"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xd67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02",
@@ -277,7 +790,7 @@
},
"004-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -310,7 +823,116 @@
{
"rlp": "0xf90494f90242a0a7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0edc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455eea027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xedc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455ee",
+ "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5d554017739d731af48a5411482473ac138705186126ead565de9eb16ed7dbc5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f",
+ "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844",
@@ -346,7 +968,7 @@
},
"005-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -379,7 +1001,117 @@
{
"rlp": "0xf904b5f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a2f18d3b3cd4722f0dd35574c211fc582030a172703c0fdcc320f4c49003d771a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xa2f18d3b3cd4722f0dd35574c211fc582030a172703c0fdcc320f4c49003d771",
+ "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0fa16e41d59bdfaba7f9dad9ce30dce635949ec76aa8d8fc3d897fedb158314d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xf1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96e",
+ "s": "0x38cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
@@ -415,7 +1147,7 @@
},
"006-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -448,7 +1180,117 @@
{
"rlp": "0xf904b6f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0edc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455eea01f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xedc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455ee",
+ "transactionsTrie": "0x1f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf3d262540e4a93390b8ddf30a4d6f2b17f4d91d9a9ea48c79fbe69798ff0ce05"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f",
+ "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
@@ -484,7 +1326,7 @@
},
"007-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -517,7 +1359,95 @@
{
"rlp": "0xf903e8f90242a0543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4",
+ "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe0300f080ad7ce9a85ad23d85064f23eecd31ae299cd8af29105f38b255ca23a"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75",
@@ -553,7 +1483,7 @@
},
"008-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -586,7 +1516,96 @@
{
"rlp": "0xf9040af90242a0491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f",
+ "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3360ac068ee03349bb70196b036e1d9ccb55a0bf21023c9af1980721a567d33a"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4",
@@ -622,7 +1641,7 @@
},
"009-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -655,7 +1674,97 @@
{
"rlp": "0xf9042bf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x1a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30",
+ "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2c90b6daff268c00fcd809d2043a8beaf2725fe9f83c2f118cb353c00e820183"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e",
+ "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
@@ -691,7 +1800,7 @@
},
"010-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -724,7 +1833,98 @@
{
"rlp": "0xf9044cf90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ecf59dad2bcdf166eb1e1b01e2fd9c0c3dba4e9bd7c45527e2d28e8ba0b8e0aa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0ecf59dad2bcdf166eb1e1b01e2fd9c0c3dba4e9bd7c45527e2d28e8ba0b8e0a",
+ "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x30a92798ab246316c92a23d022514f30485d7df56cc1ea9634f600bd32a56643"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0xe9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71",
+ "s": "0x40e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
@@ -760,7 +1960,7 @@
},
"011-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -793,7 +1993,97 @@
{
"rlp": "0xf9042cf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f",
+ "transactionsTrie": "0x97c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddb",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7e635c0a9a48552a2879c85c397c5a77cbe11c61b79c5b9e181ba6743534a633"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
@@ -829,7 +2119,7 @@
},
"012-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -862,7 +2152,98 @@
{
"rlp": "0xf9044df90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30a097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x1a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30",
+ "transactionsTrie": "0x97c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddb",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd59de7b808a363cd4a2f884733d2311ac5fdff59b693de490ed67726b60e069c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e",
+ "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
@@ -898,7 +2279,7 @@
},
"013-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -931,7 +2312,98 @@
{
"rlp": "0xf9044ef90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90204b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f",
+ "transactionsTrie": "0xf8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0ac07e243311710dee47db6f264223a645e80bd0b18ae1240fc9183c15ffdb62"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
@@ -967,7 +2439,7 @@
},
"014-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1000,7 +2472,75 @@
{
"rlp": "0xf9035ef90242a0d9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xd9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf",
+ "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc3cfb6dab012df61cdb3e226e64b17cf54857b0df15b79098c02c91d02b8f5f2"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xd9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55",
@@ -1036,7 +2576,7 @@
},
"015-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1069,7 +2609,76 @@
{
"rlp": "0xf90380f90242a026df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1",
+ "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1d4cb7c31c1bf0dfdf75815ff12910c8fcd821416b1356ca638e577ab2ae67bc"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad",
@@ -1105,7 +2714,7 @@
},
"016-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1138,7 +2747,77 @@
{
"rlp": "0xf903a1f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8",
+ "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x46efe02cd4bce6f5ccc379e2c9d307e4ebdb15b94803e3cde0917e19f0a7267e"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746",
+ "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d",
@@ -1174,7 +2853,7 @@
},
"017-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1207,7 +2886,78 @@
{
"rlp": "0xf903c2f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699",
+ "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9d4240e01e7a864a89ea33b1a355f5a86cb422cfc33c8009cf89c56786a0a3d5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f",
+ "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
@@ -1243,7 +2993,7 @@
},
"018-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 5)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1276,7 +3026,79 @@
{
"rlp": "0xf903e5f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa041e4f8e82c7e61f05afb5c8dc629e49cc896302f003633838962f60c3a4fd347a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x41e4f8e82c7e61f05afb5c8dc629e49cc896302f003633838962f60c3a4fd347",
+ "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0ae3828f19ac01877130a78b424c0b4ea3186b7e250fe55c7b7708187fd62de9"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0x3b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97",
+ "s": "0x3ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
@@ -1312,7 +3134,7 @@
},
"019-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1345,7 +3167,77 @@
{
"rlp": "0xf903a2f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90158b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1",
+ "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x882074cbe60b2e0c65a26c206a0f0bbf95ede491976c8a58b3c4d2d63342876a"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d",
@@ -1381,7 +3273,7 @@
},
"020-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1414,7 +3306,78 @@
{
"rlp": "0xf903c3f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8",
+ "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x54def9425700b58b0e614cdf492302422c5c5c0af0097eee6d293f8f900be78d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746",
+ "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
@@ -1450,7 +3413,7 @@
},
"021-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1483,7 +3446,79 @@
{
"rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699",
+ "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0be03f76cbd053c9533225b250f1d6de31e2e7b828194c515591dec1af8d6776"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f",
+ "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
@@ -1519,7 +3554,7 @@
},
"022-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1552,7 +3587,79 @@
{
"rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8",
+ "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8af317c96c950be6ade511dcd9ea18b1d65ca2d1313197107446f2dabd002f8d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746",
+ "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
@@ -1588,7 +3695,7 @@
},
"023-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1621,7 +3728,55 @@
{
"rlp": "0xf902d1f90240a0cb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x63fec1369cd9d65b290ae94fc996e8ebf2c79051c6bf35141dd04fae3e4ed933"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91",
@@ -1657,7 +3812,7 @@
},
"024-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1690,7 +3845,56 @@
{
"rlp": "0xf902f3f90240a0555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055062ff0403a751369681b1a8c78b7479e646eb195f45d24785b05bcc2c3ef54a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x55062ff0403a751369681b1a8c78b7479e646eb195f45d24785b05bcc2c3ef54",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x10f6bf0ebaf88a7f35716adc2b76b09a80736ecccbdd9ed51f3bcf61b67ab920"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901",
@@ -1726,7 +3930,7 @@
},
"025-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1759,7 +3963,57 @@
{
"rlp": "0xf90314f90240a0b2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a48d0e79248037a5d478e952d0f84f2de67b81bd690b001d8f40cc645ea71527a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xa48d0e79248037a5d478e952d0f84f2de67b81bd690b001d8f40cc645ea71527",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x02ebb7f9171a61f30e4a40e2eed4d7289243def7997979f40ab84574f40f71a7"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8d",
@@ -1795,7 +4049,7 @@
},
"026-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1828,7 +4082,58 @@
{
"rlp": "0xf90335f90240a0f702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c54d69c3347142f5e89a0627c040b1cae799df927387d8b2287562f366086da2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xc54d69c3347142f5e89a0627c040b1cae799df927387d8b2287562f366086da2",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf31577f4e429cc18fd6716e2a0d78f8f0ff6c10b9ead22ee5ed00baa89303b87"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354",
+ "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064",
@@ -1864,7 +4169,7 @@
},
"027-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(5,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1897,7 +4202,59 @@
{
"rlp": "0xf90359f90240a0a118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00d58e806b064c735bd0f8061ffb3449554550a6c386a6759b1970660ecf63986a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8f",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0d58e806b064c735bd0f8061ffb3449554550a6c386a6759b1970660ecf63986",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe900787f74aaaeaecaeba10affb6fd922813ee87a871cb3b09c934710b88f12d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x00",
+ "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16",
+ "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8f",
@@ -1933,7 +4290,7 @@
},
"028-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(6,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1966,7 +4323,60 @@
{
"rlp": "0xf9037af90240a04b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080242300467fba448d8a7e7959ca5b16a09ee59ada43e34876dc94ee97f310b6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x80242300467fba448d8a7e7959ca5b16a09ee59ada43e34876dc94ee97f310b6",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa248f941810b740ca6536fa8cc2caaf50ce68d6afe2f280f9a2fb84be5095869"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x01",
+ "r": "0xa3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0f",
+ "s": "0x36264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3",
@@ -2002,7 +4412,7 @@
},
"029-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2035,7 +4445,136 @@
{
"rlp": "0xf9051ff90243a0bbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02a0395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x97aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02",
+ "transactionsTrie": "0x395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597b",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x75e41f6c36bcf8946ecaaca60e3ce3bda5f98ae98cd16f543ff94ec9a4fad751"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5",
@@ -2071,7 +4610,7 @@
},
"030-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2104,7 +4643,116 @@
{
"rlp": "0xf90494f90242a0a7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a06a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0",
+ "transactionsTrie": "0x6a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xafa9704a49aa3d0223f06a71c7c8a3169d9c4cb8fc4d0b350ac59ad01bfd8d22"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844",
@@ -2140,7 +4788,7 @@
},
"031-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2173,7 +4821,117 @@
{
"rlp": "0xf904b5f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a03b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0",
+ "transactionsTrie": "0x3b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7c95d215af40d96c4061f0745f353f40ac1fc7bd78cf21474440dc3e3d741c97"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
@@ -2209,7 +4967,7 @@
},
"032-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2242,7 +5000,117 @@
{
"rlp": "0xf904b6f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a0144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0",
+ "transactionsTrie": "0x144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61e",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1cd9cdf93a0cd24ec9dc983ccd40882bed54b368166bc182da0b6a1cec72e5e1"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195",
@@ -2278,7 +5146,7 @@
},
"033-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2311,7 +5179,96 @@
{
"rlp": "0xf9040af90242a0491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0dd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4",
+ "transactionsTrie": "0xdd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1d03fe39fb8e7321203ab9fd3d6fe351f5266405b002d32448fd5914dae17dc8"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4",
@@ -2347,7 +5304,7 @@
},
"034-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2380,7 +5337,97 @@
{
"rlp": "0xf9042bf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0a8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4",
+ "transactionsTrie": "0xa8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3c6432461b2324e29e7679544a7f1a928ca71c94d3fe8e8eb9ad81875719f403"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
@@ -2416,7 +5463,7 @@
},
"035-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2449,7 +5496,98 @@
{
"rlp": "0xf9044cf90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0ed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4",
+ "transactionsTrie": "0xed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02d",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x747e10bb9f459d68a4135cec1f9c5ca4dab8e8f974d519b60bf215871d627389"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354",
+ "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
@@ -2485,7 +5623,7 @@
},
"036-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2518,7 +5656,97 @@
{
"rlp": "0xf9042cf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4",
+ "transactionsTrie": "0xf8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x57dae5afb124528c66c0b71fe56f593db982cc837da21bfcdd5fe7c173e27aee"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c",
@@ -2554,7 +5782,7 @@
},
"037-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2587,7 +5815,98 @@
{
"rlp": "0xf9044df90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a02c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4",
+ "transactionsTrie": "0x2c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb4c99eb503cd5e5b15c51d08f9a66c0a7527ea2bdc607c3318822205762b1713"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4",
@@ -2623,7 +5942,7 @@
},
"038-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2656,7 +5975,76 @@
{
"rlp": "0xf90380f90242a026df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf",
+ "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0ef4f1fd0a5da712df7e33d05830972873c21fc7fa411fab51a23f9fd3a8dd7c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad",
@@ -2692,7 +6080,7 @@
},
"039-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2725,7 +6113,77 @@
{
"rlp": "0xf903a1f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf",
+ "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa5384be862ef5231fea9c11f6766a96a67fbc6ad7fc8ebd3c9ea910398ab6216"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d",
@@ -2761,7 +6219,7 @@
},
"040-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2794,7 +6252,78 @@
{
"rlp": "0xf903c2f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf",
+ "transactionsTrie": "0x523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0a",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa01704061fff866138689862e075cced74729f3611e8566b4af81e0469b620c0"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354",
+ "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
@@ -2830,7 +6359,7 @@
},
"041-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(5, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2863,7 +6392,79 @@
{
"rlp": "0xf903e5f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf",
+ "transactionsTrie": "0xc3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0fb4973d170670ceaa6e9971ec2b69823746a834da66508d904ee900c952d0b6"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x00",
+ "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16",
+ "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
@@ -2899,7 +6500,7 @@
},
"042-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2932,7 +6533,78 @@
{
"rlp": "0xf903c3f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1",
+ "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xbf0c6df98618cf90b279de8b6aa957eec8773add12f693b3982d2a6b60cfaef4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2",
@@ -2968,7 +6640,7 @@
},
"043-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3001,7 +6673,79 @@
{
"rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0",
"expectException": "insufficient account balance",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1",
+ "transactionsTrie": "0x523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0a",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xaa6b1b72f2b8ccbd103aa318be057c4370772783df4d7448f3a361e9b2f0a0a9"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354",
+ "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json
index b999c55cbd7..95d315ca055 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun--single_tx_single_blob": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d1f90240a07832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e28ed2bcf4819adfa5b691548f1a3921587ff9c5dbe995d533acdebe5059ae84a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000180a054d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81ea02bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374cc0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe28ed2bcf4819adfa5b691548f1a3921587ff9c5dbe995d533acdebe5059ae84",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd5f6715b4c9cea0679245e360b7ab5e747583b60dd76ad240c82cd8f9944cfe2"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0000000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x54d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81e",
+ "s": "0x2bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374c",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444",
@@ -70,7 +118,7 @@
},
"001-fork=Cancun--single_tx_multiple_blobs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -103,7 +151,56 @@
{
"rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000101a0977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0aa03a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206c0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "0x0000000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0a",
+ "s": "0x3a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be",
@@ -139,7 +236,7 @@
},
"002-fork=Cancun--single_tx_multiple_blobs_single_bad_hash_1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -172,7 +269,56 @@
{
"rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a0cc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136a015bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2c0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0000000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0xcc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136",
+ "s": "0x15bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be",
@@ -208,7 +354,7 @@
},
"003-fork=Cancun--single_tx_multiple_blobs_single_bad_hash_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -241,7 +387,56 @@
{
"rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313a01ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633c0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0000000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0x629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313",
+ "s": "0x1ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be",
@@ -277,7 +472,7 @@
},
"004-fork=Cancun--multiple_txs_single_blob": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -310,7 +505,75 @@
{
"rlp": "0xf9035ef90242a025fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03cc964d95a7581579147c29e0838092ef15297cfecb743f03caa05a7985d28c4a09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000201a06ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4a0154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5c0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x3cc964d95a7581579147c29e0838092ef15297cfecb743f03caa05a7985d28c4",
+ "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe4914ece17b56055e8c9fc3a5f3b4c8c67113dd4d238f60d58dfbadd6d9c9c7c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455",
+ "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0000000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x6ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4",
+ "s": "0x154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565",
@@ -346,7 +609,7 @@
},
"005-fork=Cancun--multiple_txs_multiple_blobs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -379,7 +642,76 @@
{
"rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67aa09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a064a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2a028409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193aec0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xa98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67a",
+ "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4dea41029579e8fd3bc62bdaac395a6045a91dad3a68909947aece60b190907b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455",
+ "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0000000000000000000000000000000000000000000000000000000000000001",
+ "0x0000000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0x64a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2",
+ "s": "0x28409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193ae",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31",
@@ -415,7 +747,7 @@
},
"006-fork=Cancun--multiple_txs_multiple_blobs_single_bad_hash_1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -448,7 +780,76 @@
{
"rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67aa09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a047f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590a065ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602ddc0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xa98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67a",
+ "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4dea41029579e8fd3bc62bdaac395a6045a91dad3a68909947aece60b190907b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455",
+ "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0000000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x47f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590",
+ "s": "0x65ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602dd",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31",
@@ -484,7 +885,7 @@
},
"007-fork=Cancun--multiple_txs_multiple_blobs_single_bad_hash_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -517,7 +918,95 @@
{
"rlp": "0xf903e8f90242a07947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028debd21503f6c8a4e99cc2068f565904f55205cab98d6a3fbd90651f4aa380aa06cf1a00219adf3c2d8cceb030dda791033e5920bab56bffd447dff1ce177638ca010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000280a02ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079a04932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000380a04a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976a0733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3c0c0",
"expectException": "invalid blob versioned hash",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x28debd21503f6c8a4e99cc2068f565904f55205cab98d6a3fbd90651f4aa380a",
+ "transactionsTrie": "0x6cf1a00219adf3c2d8cceb030dda791033e5920bab56bffd447dff1ce177638c",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x686dd251ffd620f4991fe04e19cf1688ea448f8fbd5e9772e4ff1df4aef335e2"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455",
+ "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0x2ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079",
+ "s": "0x4932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0000000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x4a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976",
+ "s": "0x733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json
index 5bc3ba59f87..185555ae560 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,175 @@
{
"rlp": "0xf90611f90243a0142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01160bf706d3b06190fa33e896c44f6344158bacefadc0d6faa47ae69fbb424dea02579c29ab652de198ccbb3955047a953123c8d13e8728b18fde1b6894f883120a0b68b3b40b117981014523f7d13c54838507b148d7b74399ca5bdebd0b577f080b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083023e380c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f903c6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eab88803f885010680078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a02145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3a03a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bfc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x1160bf706d3b06190fa33e896c44f6344158bacefadc0d6faa47ae69fbb424de",
+ "transactionsTrie": "0x2579c29ab652de198ccbb3955047a953123c8d13e8728b18fde1b6894f883120",
+ "receiptTrie": "0xb68b3b40b117981014523f7d13c54838507b148d7b74399ca5bdebd0b577f080",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x023e38",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb7697b10784aabceb4b673ede99805ee4a5477fc9b5b6ff236b3b1d7f07bb6a0"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x05",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4",
+ "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x06",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x2145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3",
+ "s": "0x3a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bf",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2",
@@ -70,7 +238,7 @@
},
"001-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -103,7 +271,156 @@
{
"rlp": "0xf905a9f90243a0b37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226a066ec7d1f1b72c0f5feaba91fa153d37cbd4546fa5cbd873935058046433fda93a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b8aa03f8a7010580078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a077be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12a02c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226",
+ "transactionsTrie": "0x66ec7d1f1b72c0f5feaba91fa153d37cbd4546fa5cbd873935058046433fda93",
+ "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x01ec30",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1924e77987d633fea1aa732a2b4dffe16daf613cd204f37821f954088e76bd2c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x05",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x77be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12",
+ "s": "0x2c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1",
@@ -139,7 +456,7 @@
},
"002-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -172,7 +489,137 @@
{
"rlp": "0xf90540f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0e24fc5bc5b28819e28da0d847992b6880bbacff1b2b3e4c7043ccdd5addb0e6da00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8cb03f8c8010480078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a056368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04a00222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd",
+ "transactionsTrie": "0xe24fc5bc5b28819e28da0d847992b6880bbacff1b2b3e4c7043ccdd5addb0e6d",
+ "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x019a28",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x45baae94310faa78a4b97f5194ee78e0b865f72b0dbc512dac45f95d6d18c7e5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x56368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04",
+ "s": "0x0222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
@@ -208,7 +655,7 @@
},
"003-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -241,7 +688,137 @@
{
"rlp": "0xf90541f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda03d9aba437ed8d586f33d3f0675b2f8b8353cf9c5e953cd3d8b436c5e4c6ec9ffa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480eb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd",
+ "transactionsTrie": "0x3d9aba437ed8d586f33d3f0675b2f8b8353cf9c5e953cd3d8b436c5e4c6ec9ff",
+ "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x019a28",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7f47d195494d15f23e7d11a834ad7f807c15611fa829059f9527ce26eae2efa8"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f",
+ "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0xf767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8c",
+ "s": "0x7f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
@@ -277,7 +854,7 @@
},
"004-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -310,7 +887,118 @@
{
"rlp": "0xf904d7f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0e77162b50c1197db32a578c34e5e387716ecdabfb7409fa1239534fd9d6f37caa080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8ec03f8e9010380078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0e8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73a012705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338bc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557",
+ "transactionsTrie": "0xe77162b50c1197db32a578c34e5e387716ecdabfb7409fa1239534fd9d6f37ca",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7f360aed78cf14817a48f88d6c65c1f4160957d6d83b94ecbfe77a08306683b7"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0xe8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73",
+ "s": "0x12705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
@@ -346,7 +1034,7 @@
},
"005-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 2, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -379,7 +1067,118 @@
{
"rlp": "0xf904d8f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0a24e376fbaa6be769bd94846d02837640365c0899d967d71fdf250a713d6bb96a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557",
+ "transactionsTrie": "0xa24e376fbaa6be769bd94846d02837640365c0899d967d71fdf250a713d6bb96",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9346a9ac028916affa9024bb32947d295daee9215d23ab18679d01744a7dadca"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xf1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96e",
+ "s": "0x38cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
@@ -415,7 +1214,7 @@
},
"006-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 2, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -448,7 +1247,118 @@
{
"rlp": "0xf904d9f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0467a19dbbcaf37be5da721ae2b80ad27a098f1f7e9c48ed6cb7aef9847721c13a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557",
+ "transactionsTrie": "0x467a19dbbcaf37be5da721ae2b80ad27a098f1f7e9c48ed6cb7aef9847721c13",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf5b4e350462073cd21520d8d57f61fed7c4c74d7988414a4eb52e1444b36a26e"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f",
+ "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
@@ -484,7 +1394,7 @@
},
"007-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 5)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -517,7 +1427,99 @@
{
"rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0b8d22a2a3107e5e6d5975cca19f23ddd8f6329ae7dbee6c6535ec1e2fb396132a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb9010e03f9010a010280078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a042497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1a042592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0xb8d22a2a3107e5e6d5975cca19f23ddd8f6329ae7dbee6c6535ec1e2fb396132",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x21b669ee8e3031bbc1e49ad46bd6471f3d6269b3ed87b9599993e61a8459ce68"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0x42497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1",
+ "s": "0x42592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -553,7 +1555,7 @@
},
"008-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 2, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -586,7 +1588,99 @@
{
"rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0b7f1ceea08d6e5de07e1e2f7a3f65e6ad25d668d6d5a68b471b3b5e34e2a333ca09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0xb7f1ceea08d6e5de07e1e2f7a3f65e6ad25d668d6d5a68b471b3b5e34e2a333c",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xef93382b8993136f8d636d168d0e8713bac9b125b3b4d148a14372961db7b0cc"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0xe9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71",
+ "s": "0x40e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -622,7 +1716,7 @@
},
"009-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 3, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -655,7 +1749,99 @@
{
"rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a094257dc9890743429640f6e5514fba57cfd0182af5c8b448c0e313f149e6fcd5a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0x94257dc9890743429640f6e5514fba57cfd0182af5c8b448c0e313f149e6fcd5",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xef6478714649d408b55aed038bb9d6d781427a91dd4bf86d6517f6e96d07f015"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746",
+ "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e",
+ "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -691,7 +1877,7 @@
},
"010-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -724,7 +1910,99 @@
{
"rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a07060c3d206c3e12d56a46b46825ff36dbf3bf0d2ef50db7cb67de2a5531ee8ffa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0x7060c3d206c3e12d56a46b46825ff36dbf3bf0d2ef50db7cb67de2a5531ee8ff",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0d931f1beb4657393db352f55882b3bd5062f8061d7ee0c6095ac89a2f0ff0e3"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x00",
+ "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e",
+ "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -760,7 +2038,7 @@
},
"011-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 6)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -793,7 +2071,80 @@
{
"rlp": "0xf90406f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0f3e1659ddc6a74d943d65d62d4b2bc17b534976d1f1e9cc12837dade94910dd0a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9012f03f9012b010180078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0d2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1fa049f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479",
+ "transactionsTrie": "0xf3e1659ddc6a74d943d65d62d4b2bc17b534976d1f1e9cc12837dade94910dd0",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xedc928c463032db5a125707bd7811a0d0dc1baa3e782ef6e65a5c4cb653fe4d4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0xd2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1f",
+ "s": "0x49f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
@@ -829,7 +2180,7 @@
},
"012-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 5)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -862,7 +2213,80 @@
{
"rlp": "0xf90407f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a095fcf8909d577b2083b9826800534bcff34ed99c0a62ba8a76137a19ef695a13a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479",
+ "transactionsTrie": "0x95fcf8909d577b2083b9826800534bcff34ed99c0a62ba8a76137a19ef695a13",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe8311c8368130c0ceac6de364a80e255d5ea582f83b0f0f6ac9cba96b3b911ef"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0x3b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97",
+ "s": "0x3ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
@@ -898,7 +2322,7 @@
},
"013-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -931,7 +2355,80 @@
{
"rlp": "0xf90405f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0cd9bd46b0f2e318a5236d207dbd53a9ab32491fde3f09c33ae19100d31086891a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479",
+ "transactionsTrie": "0xcd9bd46b0f2e318a5236d207dbd53a9ab32491fde3f09c33ae19100d31086891",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x95ce6dcfad780cbccf15c227c5a78ad0b55bec6623617c5a5a710b0179b7797a"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f",
+ "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
@@ -967,7 +2464,7 @@
},
"014-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(7,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1000,7 +2497,61 @@
{
"rlp": "0xf9039df90242a09c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0a9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252",
+ "transactionsTrie": "0xa9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb174770ab720577a08687ca81a12aa1c31ca5c638bd1860cd85a301043a84760"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005",
+ "0x0100000000000000000000000000000000000000000000000000000000000006"
+ ],
+ "v": "0x01",
+ "r": "0xaf0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6",
+ "s": "0x56fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3",
@@ -1036,7 +2587,7 @@
},
"015-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 1, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1069,7 +2620,156 @@
{
"rlp": "0xf905a9f90243a0b37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226a0900435949a013be5428acea59eda17147cb48e8fc507e453a1f251b3b0307393a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226",
+ "transactionsTrie": "0x900435949a013be5428acea59eda17147cb48e8fc507e453a1f251b3b0307393",
+ "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x01ec30",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x898e51408d09ddf7da8f82293b083ef829de927e7debcd14064f11295d5246ea"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x05",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4",
+ "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1",
@@ -1105,7 +2805,7 @@
},
"016-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1138,7 +2838,137 @@
{
"rlp": "0xf90540f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0344f6e30feece56c276d725150faed27a199b2e46ac573a2dffb2dc3bff5311aa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd",
+ "transactionsTrie": "0x344f6e30feece56c276d725150faed27a199b2e46ac573a2dffb2dc3bff5311a",
+ "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x019a28",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa4abd04583d0ef65ad33c37d0765ea6c2f15901aa9e81ffdcb3936b52dba00a5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
@@ -1174,7 +3004,7 @@
},
"017-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1207,7 +3037,137 @@
{
"rlp": "0xf90541f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0b4c142d700fbc5344ba1ae688a9a1fb035d02f7e333ac66e03a4364455700fc5a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd",
+ "transactionsTrie": "0xb4c142d700fbc5344ba1ae688a9a1fb035d02f7e333ac66e03a4364455700fc5",
+ "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x019a28",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x957e6fe78317912cfb3c879bff37084cf98f77a2fe86544064ed068d2ee8b701"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d",
+ "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492",
@@ -1243,7 +3203,7 @@
},
"018-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1276,7 +3236,118 @@
{
"rlp": "0xf904d7f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a01c6b68ccfe9062c33f455258f202caa6edb49174c1cbb76595d95aa5d2bbd06fa080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557",
+ "transactionsTrie": "0x1c6b68ccfe9062c33f455258f202caa6edb49174c1cbb76595d95aa5d2bbd06f",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x09ae5a602e57474c71cfd235ec2081079c9de6f19fdc5c33a0fa7ba701f275db"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354",
+ "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
@@ -1312,7 +3383,7 @@
},
"019-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 2, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1345,7 +3416,118 @@
{
"rlp": "0xf904d8f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0b0f4ac5bd5ec3b5c8ff39fbc3e8fb6d9c39794f66e839d8446bfe691bab5e7e5a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557",
+ "transactionsTrie": "0xb0f4ac5bd5ec3b5c8ff39fbc3e8fb6d9c39794f66e839d8446bfe691bab5e7e5",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3b7de646c7b558777069d40a10a53c3d86296219260e91246fccbec2d515e908"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
@@ -1381,7 +3563,7 @@
},
"020-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1414,7 +3596,118 @@
{
"rlp": "0xf904d9f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a043a1c8184648d00e80478a9eb52b7bdf242666738ce2168673fa1a68934e7d3ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557",
+ "transactionsTrie": "0x43a1c8184648d00e80478a9eb52b7bdf242666738ce2168673fa1a68934e7d3b",
+ "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x014820",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9ca7e07dd2718b5b552f9a31416bcdd90cb69538aacbd506d9a5495ff3b8b3ac"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5",
+ "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78",
+ "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345",
@@ -1450,7 +3743,7 @@
},
"021-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(5, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1483,7 +3776,99 @@
{
"rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a04c9b8c4e230ca5d18c785686373231a4be0587fbef4979e5be9094e23e68c9d2a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0x4c9b8c4e230ca5d18c785686373231a4be0587fbef4979e5be9094e23e68c9d2",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x045a101ec1108bba07fd0e7a57a01ad683a9d09611f4574032d1b1b8184b211f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x00",
+ "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16",
+ "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -1519,7 +3904,7 @@
},
"022-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1552,7 +3937,99 @@
{
"rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0ef2f0fb990681435e2cdebc1a1d7b6709c0e477dfd8b0c992ed7b650190a9d91a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0xef2f0fb990681435e2cdebc1a1d7b6709c0e477dfd8b0c992ed7b650190a9d91",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xdf1944e30961bb9ebb64a7278a2a5b2c8c4bfa12d6c8cd058bc2e9b53ef57606"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354",
+ "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -1588,7 +4065,7 @@
},
"023-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 3, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1621,7 +4098,99 @@
{
"rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a05a80f2685e98837d0c58e4c06331a8c2c2c9c73889a0c415497518a05efcf03ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0x5a80f2685e98837d0c58e4c06331a8c2c2c9c73889a0c415497518a05efcf03e",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf5bfa2ca4aa0e88a27ccdf5d08519ddae95cbee01d035870d5cf619e8d7b4154"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746",
+ "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1",
+ "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -1657,7 +4226,7 @@
},
"024-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1690,7 +4259,99 @@
{
"rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a08f2537a5a10ece9ba7ecec21b06a3fb5f95dd60fdd2a9d55d964500c18a17a0aa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946",
+ "transactionsTrie": "0x8f2537a5a10ece9ba7ecec21b06a3fb5f95dd60fdd2a9d55d964500c18a17a0a",
+ "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xf618",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe0257ec2b592be010ff7a59301b4a9277fefe1d08bac7761aa1624e0dcc9c021"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257",
+ "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e",
+ "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79",
@@ -1726,7 +4387,7 @@
},
"025-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(6, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1759,7 +4420,80 @@
{
"rlp": "0xf90406f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a03ef79e2b75483b3af114ba775bce341025d4545d443a5620f560499e9c4f4da3a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98db88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479",
+ "transactionsTrie": "0x3ef79e2b75483b3af114ba775bce341025d4545d443a5620f560499e9c4f4da3",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5e76ec686af211d04389e73fe61a527983293e62bc8de852720f6aa210a8d847"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x01",
+ "r": "0xa3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0f",
+ "s": "0x36264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa",
+ "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
@@ -1795,7 +4529,7 @@
},
"026-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(5, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1828,7 +4562,80 @@
{
"rlp": "0xf90407f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0cf4339618e75779f0cffe7d0a861a6e46256fdc5b5c65c01385a13ec4e2661f2a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479",
+ "transactionsTrie": "0xcf4339618e75779f0cffe7d0a861a6e46256fdc5b5c65c01385a13ec4e2661f2",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x520112fe4f8dd23b33006edbf8082f07b9afaa361acd1aed64686745dcf98f85"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x00",
+ "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16",
+ "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x00",
+ "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6",
+ "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
@@ -1864,7 +4671,7 @@
},
"027-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1897,7 +4704,80 @@
{
"rlp": "0xf90405f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a09f28f3ed16e1a426feade81e6012bd222a2bdef4cc627fdcfc20e2a385be161da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0",
"expectException": "invalid_blob_count",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479",
+ "transactionsTrie": "0x9f28f3ed16e1a426feade81e6012bd222a2bdef4cc627fdcfc20e2a385be161d",
+ "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa410",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xbcf9e948711c80774b480d9ead00c8ec6868c4369c24d40fb78e555675195886"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x01",
+ "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354",
+ "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746",
+ "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json
index 4d88e123a7b..271b6de34a9 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-insufficient_max_fee_per_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d1f90240a04348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b70452996c18d2897321be12cbe65c99b5619870503d4ef7c04203a6492946b6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080068252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0addeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bca07ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2c0c0",
"expectException": "insufficient max fee per gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xb70452996c18d2897321be12cbe65c99b5619870503d4ef7c04203a6492946b6",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8e5f44cda0a3a6c9f56ccb63ecc706007c98ea10adaf4f208e379219d5f59c08"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x06",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xaddeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bc",
+ "s": "0x7ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json
index 5d31e72e8d5..7fd04e42b95 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-too_few_blobs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,53 @@
{
"rlp": "0xf902adf9023da0327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0",
"expectException": "zero blob tx",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x99727d67f3ed7f531fd2ca26118fe3988e856a69ea090a28fb29c2dd937abe85"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [],
+ "v": "0x00",
+ "r": "0xde3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cd",
+ "s": "0x6c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4",
@@ -70,7 +116,7 @@
},
"001-fork=Cancun-too_many_blobs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -103,7 +149,61 @@
{
"rlp": "0xf9039df90242a09c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0a9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0",
"expectException": "too many blobs",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252",
+ "transactionsTrie": "0xa9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0e0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb174770ab720577a08687ca81a12aa1c31ca5c638bd1860cd85a301043a84760"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005",
+ "0x0100000000000000000000000000000000000000000000000000000000000006"
+ ],
+ "v": "0x01",
+ "r": "0xaf0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6",
+ "s": "0x56fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json
index f730b3e69ee..57547f7cc83 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-insufficient_max_fee_per_blob_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -88,7 +88,55 @@
{
"rlp": "0xf902d1f90240a0a0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa088f4e11957ad01621ac155dd46f9d6a836e296cd869ef56a3e11f684bd30810aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000801880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083240000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0",
"expectException": "insufficient max fee per blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x88f4e11957ad01621ac155dd46f9d6a836e296cd869ef56a3e11f684bd30810a",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x240000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xaebf0315015f552eeb84c9b2d9a7ba12d62f70b92cda256b43f3d8af45f05d26"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x01",
+ "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c",
+ "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27",
@@ -144,7 +192,7 @@
},
"001-fork=Cancun-invalid_max_fee_per_blob_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -177,7 +225,55 @@
{
"rlp": "0xf902cef9023da09c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c080e1a0010000000000000000000000000000000000000000000000000000000000000080a0df26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030ca02e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0c0c0",
"expectException": "invalid max fee per blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x9c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe7620d61234fc13400097a16ee8e0aef1ba0394be6eac5e724fb956e36276cd5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x00",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xdf26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030c",
+ "s": "0x2e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x9c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json
index 21c45cab8c3..d8b37751e67 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -224,7 +224,7 @@
},
"001-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -427,7 +427,7 @@
},
"002-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -631,7 +631,7 @@
},
"003-fork=Cancun-blobs_per_tx=(1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -814,7 +814,7 @@
},
"004-fork=Cancun-blobs_per_tx=(1, 1, 1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -998,7 +998,7 @@
},
"005-fork=Cancun-blobs_per_tx=(1, 1, 1, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1183,7 +1183,7 @@
},
"006-fork=Cancun-blobs_per_tx=(1, 1, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1368,7 +1368,7 @@
},
"007-fork=Cancun-blobs_per_tx=(1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1531,7 +1531,7 @@
},
"008-fork=Cancun-blobs_per_tx=(1, 1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1695,7 +1695,7 @@
},
"009-fork=Cancun-blobs_per_tx=(1, 1, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1860,7 +1860,7 @@
},
"010-fork=Cancun-blobs_per_tx=(1, 1, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2026,7 +2026,7 @@
},
"011-fork=Cancun-blobs_per_tx=(1, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2191,7 +2191,7 @@
},
"012-fork=Cancun-blobs_per_tx=(1, 2, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2357,7 +2357,7 @@
},
"013-fork=Cancun-blobs_per_tx=(2, 2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2523,7 +2523,7 @@
},
"014-fork=Cancun-blobs_per_tx=(1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2666,7 +2666,7 @@
},
"015-fork=Cancun-blobs_per_tx=(1, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2810,7 +2810,7 @@
},
"016-fork=Cancun-blobs_per_tx=(1, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2955,7 +2955,7 @@
},
"017-fork=Cancun-blobs_per_tx=(1, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3101,7 +3101,7 @@
},
"018-fork=Cancun-blobs_per_tx=(1, 5)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3248,7 +3248,7 @@
},
"019-fork=Cancun-blobs_per_tx=(2, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3393,7 +3393,7 @@
},
"020-fork=Cancun-blobs_per_tx=(2, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3539,7 +3539,7 @@
},
"021-fork=Cancun-blobs_per_tx=(2, 4)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3686,7 +3686,7 @@
},
"022-fork=Cancun-blobs_per_tx=(3, 3)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3833,7 +3833,7 @@
},
"023-fork=Cancun-blobs_per_tx=(1,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3956,7 +3956,7 @@
},
"024-fork=Cancun-blobs_per_tx=(2,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4080,7 +4080,7 @@
},
"025-fork=Cancun-blobs_per_tx=(3,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4205,7 +4205,7 @@
},
"026-fork=Cancun-blobs_per_tx=(4,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4331,7 +4331,7 @@
},
"027-fork=Cancun-blobs_per_tx=(5,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4458,7 +4458,7 @@
},
"028-fork=Cancun-blobs_per_tx=(6,)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4586,7 +4586,7 @@
},
"029-fork=Cancun-blobs_per_tx=(2, 1, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4790,7 +4790,7 @@
},
"030-fork=Cancun-blobs_per_tx=(2, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4974,7 +4974,7 @@
},
"031-fork=Cancun-blobs_per_tx=(3, 1, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5159,7 +5159,7 @@
},
"032-fork=Cancun-blobs_per_tx=(2, 2, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5344,7 +5344,7 @@
},
"033-fork=Cancun-blobs_per_tx=(2, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5508,7 +5508,7 @@
},
"034-fork=Cancun-blobs_per_tx=(3, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5673,7 +5673,7 @@
},
"035-fork=Cancun-blobs_per_tx=(4, 1, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5839,7 +5839,7 @@
},
"036-fork=Cancun-blobs_per_tx=(2, 2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6004,7 +6004,7 @@
},
"037-fork=Cancun-blobs_per_tx=(3, 2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6170,7 +6170,7 @@
},
"038-fork=Cancun-blobs_per_tx=(2, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6314,7 +6314,7 @@
},
"039-fork=Cancun-blobs_per_tx=(3, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6459,7 +6459,7 @@
},
"040-fork=Cancun-blobs_per_tx=(4, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6605,7 +6605,7 @@
},
"041-fork=Cancun-blobs_per_tx=(5, 1)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6752,7 +6752,7 @@
},
"042-fork=Cancun-blobs_per_tx=(3, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6898,7 +6898,7 @@
},
"043-fork=Cancun-blobs_per_tx=(4, 2)": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json
index 6a1fee8737b..691992c20f3 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-one_full_blob_one_tx": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xfa020347f90242a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f43e34d45b96073376e0dc37a47ab53620a19ed5dfd325eaf679543f469e417ea0efd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0200fcba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0",
"expectException": "invalid transaction",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf43e34d45b96073376e0dc37a47ab53620a19ed5dfd325eaf679543f469e417e",
+ "transactionsTrie": "0xefd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1",
+ "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x5208",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa741fc4e2854de4272a2e56d1d502ec9986e1f93859e5debf98815c740850023"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x01",
+ "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d",
+ "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7",
@@ -70,7 +118,7 @@
},
"001-fork=Cancun-one_full_blob_max_txs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -103,7 +151,155 @@
{
"rlp": "0xfa0205faf90243a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecb88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382c0c0",
"expectException": "invalid transaction",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259",
+ "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269",
+ "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x01ec30",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa4ac66e7a89abb4f0fb63e67d7c550246ad394c5af6d582c0c155979be4dbb26"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x01",
+ "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d",
+ "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x01",
+ "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd",
+ "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3",
+ "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e",
+ "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34",
+ "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x05",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd",
+ "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7",
@@ -139,7 +335,7 @@
},
"002-fork=Cancun-one_full_blob_at_the_end_max_txs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -172,7 +368,155 @@
{
"rlp": "0xfa0205faf90243a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecba0200f803fa0200f3f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0",
"expectException": "invalid transaction",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259",
+ "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269",
+ "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x01ec30",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa4ac66e7a89abb4f0fb63e67d7c550246ad394c5af6d582c0c155979be4dbb26"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x01",
+ "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d",
+ "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x01",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x01",
+ "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd",
+ "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x02",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3",
+ "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x03",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e",
+ "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x04",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34",
+ "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ },
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x05",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ ],
+ "v": "0x00",
+ "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd",
+ "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json
index c134d6f4faf..914cee72858 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-tx_type=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -492,7 +492,7 @@
},
"001-fork=Cancun-tx_type=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -990,7 +990,7 @@
},
"002-fork=Cancun-tx_type=2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1495,7 +1495,7 @@
},
"003-fork=Cancun-tx_type=3": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json
index 9f9c96754fd..3f9d4ed1168 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-scenario=invalid_calls": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json
index 8193c0936fc..08013193e35 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json
index 1122b7564c6..f87f16fca3f 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-scenario=single_valid": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -452,7 +452,7 @@
},
"001-fork=Cancun-scenario=repeated_valid": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -903,7 +903,7 @@
},
"002-fork=Cancun-scenario=valid_invalid": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1354,7 +1354,7 @@
},
"003-fork=Cancun-scenario=varied_valid": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json
index 5e34e4e6e5d..d2d54360f0a 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json
@@ -1,7 +1,7 @@
{
"000-opcode_context=on_top_level_call_stack-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -138,7 +138,7 @@
},
"001-opcode_context=on_max_value-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -278,7 +278,7 @@
},
"002-opcode_context=on_CALL-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -428,7 +428,7 @@
},
"003-opcode_context=on_DELEGATECALL-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -587,7 +587,7 @@
},
"004-opcode_context=on_STATICCALL-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -746,7 +746,7 @@
},
"005-opcode_context=on_CALLCODE-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -905,7 +905,7 @@
},
"006-opcode_context=on_CREATE-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1058,7 +1058,7 @@
},
"007-opcode_context=on_CREATE2-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1211,7 +1211,7 @@
},
"008-opcode_context=on_type_2_tx-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1342,7 +1342,7 @@
},
"009-opcode_context=on_type_1_tx-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1472,7 +1472,7 @@
},
"010-opcode_context=on_type_0_tx-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json
index 16292e5d729..4ac0455a039 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=18-expected_excess_blob_gas:0x220000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -203,7 +203,7 @@
},
"001-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=265-expected_excess_blob_gas:0x2100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -405,7 +405,7 @@
},
"002-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=565-expected_excess_blob_gas:0x4680000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -607,7 +607,7 @@
},
"003-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=830-expected_excess_blob_gas:0x67a0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -809,7 +809,7 @@
},
"004-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=1130-expected_excess_blob_gas:0x8d20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1011,7 +1011,7 @@
},
"005-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=1230-expected_excess_blob_gas:0x99a0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json
index 1f21ca723f8..89cb1881b97 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -144,7 +144,7 @@
},
"001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -345,7 +345,7 @@
},
"002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -547,7 +547,7 @@
},
"003-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -750,7 +750,7 @@
},
"004-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=4-expected_excess_blob_gas:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -954,7 +954,7 @@
},
"005-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=5-expected_excess_blob_gas:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1159,7 +1159,7 @@
},
"006-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=6-expected_excess_blob_gas:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1365,7 +1365,7 @@
},
"007-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=0-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1508,7 +1508,7 @@
},
"008-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=1-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1709,7 +1709,7 @@
},
"009-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=2-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1911,7 +1911,7 @@
},
"010-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=3-expected_excess_blob_gas:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2114,7 +2114,7 @@
},
"011-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=4-expected_excess_blob_gas:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2318,7 +2318,7 @@
},
"012-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=5-expected_excess_blob_gas:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2523,7 +2523,7 @@
},
"013-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=6-expected_excess_blob_gas:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2729,7 +2729,7 @@
},
"014-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=0-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2872,7 +2872,7 @@
},
"015-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=1-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3073,7 +3073,7 @@
},
"016-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=2-expected_excess_blob_gas:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3275,7 +3275,7 @@
},
"017-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=3-expected_excess_blob_gas:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3478,7 +3478,7 @@
},
"018-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=4-expected_excess_blob_gas:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3682,7 +3682,7 @@
},
"019-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=5-expected_excess_blob_gas:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3887,7 +3887,7 @@
},
"020-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=6-expected_excess_blob_gas:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4093,7 +4093,7 @@
},
"021-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=0-expected_excess_blob_gas:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4236,7 +4236,7 @@
},
"022-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=1-expected_excess_blob_gas:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4437,7 +4437,7 @@
},
"023-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=2-expected_excess_blob_gas:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4639,7 +4639,7 @@
},
"024-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=3-expected_excess_blob_gas:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4842,7 +4842,7 @@
},
"025-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=4-expected_excess_blob_gas:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5046,7 +5046,7 @@
},
"026-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=5-expected_excess_blob_gas:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5251,7 +5251,7 @@
},
"027-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=6-expected_excess_blob_gas:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json
index 37a7c8986a5..b085930f4b7 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=17-expected_excess_blob_gas:0x240000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -205,7 +205,7 @@
},
"001-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=264-expected_excess_blob_gas:0x2120000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -409,7 +409,7 @@
},
"002-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=564-expected_excess_blob_gas:0x46a0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -613,7 +613,7 @@
},
"003-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=829-expected_excess_blob_gas:0x67c0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -817,7 +817,7 @@
},
"004-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=1129-expected_excess_blob_gas:0x8d40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1021,7 +1021,7 @@
},
"005-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=1229-expected_excess_blob_gas:0x99c0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json
index a0524443d3b..a18211c7fa4 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=131072-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,51 @@
{
"rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x11e37d4045ab376876077f0071e7ff1d9495e36b3193f45783a5c7c24d561e64"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -94,7 +138,7 @@
},
"001-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=262144-correct:0x0-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -127,7 +171,51 @@
{
"rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3ea508f4a10a39ebec729333a0f5b2b712d559f7effe6dd9f36b0005047650fb"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -187,7 +275,7 @@
},
"002-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=393216-correct:0x0-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -220,7 +308,51 @@
{
"rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xdf7d55ebf2e507285381568ffb542bb83fec0734747b562dee7619ef54174852"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -280,7 +412,7 @@
},
"003-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=524288-correct:0x0-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -313,7 +445,51 @@
{
"rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe0856cd778321120578ed91ac6e65539b4986a326c66aa7fffde8b308c6e82c6"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -373,7 +549,7 @@
},
"004-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=655360-correct:0x0-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -406,7 +582,51 @@
{
"rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2e6a20c980c7e2ec76381b39488b88c6a271b8f8f292d257b4113c746b24b8ba"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -466,7 +686,7 @@
},
"005-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=786432-correct:0x0-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -499,7 +719,51 @@
{
"rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0e6f236a7b51f2cee329708ccf1f47166290ac9e193ed5f06407932c76b35019"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -559,7 +823,7 @@
},
"006-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=18446744073709551615-correct:0x0-header:0xffffffffffffffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -592,7 +856,51 @@
{
"rlp": "0xf902b5f90247a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0xffffffffffffffff",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5ef2c8ade01c33eda8cc654220f1e07cd7f8b0f63d76d35aea2732d509ca19d4"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -652,7 +960,7 @@
},
"007-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=0-correct:0x20000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -685,7 +993,55 @@
{
"rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3f0449f917504fea7502a243dd8211ec3fd24d33c55e4973127ab9dfeb7c2b38"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -745,7 +1101,7 @@
},
"008-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=262144-correct:0x20000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -778,7 +1134,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb97f29007c81d67f5ed812d56733a9f24e2e0b8a94aaf836fc8a98e50f45187d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -838,7 +1242,7 @@
},
"009-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=393216-correct:0x20000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -871,7 +1275,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4a2aefa4e10d267493c5036ebf41e4f41b359a8549b707904962a18facadd3ce"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -931,7 +1383,7 @@
},
"010-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=524288-correct:0x20000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -964,7 +1416,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5900121f6485cc0fed8b608ad39aa97b89a5c830f52b13b06829dc9b07946c22"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -1024,7 +1524,7 @@
},
"011-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=655360-correct:0x20000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1057,7 +1557,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x27b24bfba48bfaaff6432f16e93d41bf7fcc05f75bc2dc35de4d9bebbf09c7f8"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -1117,7 +1665,7 @@
},
"012-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=786432-correct:0x20000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1150,7 +1698,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x53ca291f9c98809b7257367c554f93ad46a63e24d7b92441ee541f06d4ad7640"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -1210,7 +1806,7 @@
},
"013-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=18446744073709551615-correct:0x20000-header:0xffffffffffffffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1243,7 +1839,55 @@
{
"rlp": "0xf902d8f90247a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0xffffffffffffffff",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9591ed433cebbf13b7861561feafcaf4ee12c941c851dc5180716bb9e8c8d5da"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -1303,7 +1947,7 @@
},
"014-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=0-correct:0x40000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1336,7 +1980,56 @@
{
"rlp": "0xf902f2f9023fa0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x32f573b9fc5957adc516640a71bb386370861c17f3c267d829ec3f42e935a34b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6",
+ "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
@@ -1396,7 +2089,7 @@
},
"015-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=131072-correct:0x40000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1429,7 +2122,56 @@
{
"rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x40ef8637a753e8ae589aeff7b1b323fee0d191368f16106bfdc769bb90c6808f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6",
+ "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
@@ -1489,7 +2231,7 @@
},
"016-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=393216-correct:0x40000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1522,7 +2264,56 @@
{
"rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc4ca9f95873898193d07571bcfff9edbd353c5b54a3e0571fec5d839020948ab"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6",
+ "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
@@ -1582,7 +2373,7 @@
},
"017-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=524288-correct:0x40000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1615,7 +2406,56 @@
{
"rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x283b3de64ca6a55f4f07fee8ee82eef6786aff269f08c8648c9a7d2fabc596c2"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6",
+ "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
@@ -1675,7 +2515,7 @@
},
"018-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=655360-correct:0x40000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1708,7 +2548,56 @@
{
"rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc0ba4b9f623ba3f3c024ba4d0390e202f6cef9df34510b9d6d88ea354160d06c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6",
+ "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
@@ -1768,7 +2657,7 @@
},
"019-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=786432-correct:0x40000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1801,7 +2690,56 @@
{
"rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xff225aec675f9b4ce74300d5b5208f796a9a89799ba98df6a40f332440fea24c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6",
+ "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
@@ -1861,7 +2799,7 @@
},
"020-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=18446744073709551615-correct:0x40000-header:0xffffffffffffffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1894,7 +2832,56 @@
{
"rlp": "0xf902faf90247a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0xffffffffffffffff",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2c1b06f96eaee578188b34394577cc111936d176289dbb231ae5e3ce91ba3695"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001"
+ ],
+ "v": "0x01",
+ "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6",
+ "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1",
@@ -1954,7 +2941,7 @@
},
"021-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=0-correct:0x60000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1987,7 +2974,57 @@
{
"rlp": "0xf90313f9023fa0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x55a27bddc837faef8aa47d7667cfee24e986cf6209123676f20243305a40c8a5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363",
+ "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
@@ -2047,7 +3084,7 @@
},
"022-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=131072-correct:0x60000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2080,7 +3117,57 @@
{
"rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5157f47c3f000dcb6ff56e9d908c7f3f6796efcc49cfbacae71ce86630f8a2f8"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363",
+ "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
@@ -2140,7 +3227,7 @@
},
"023-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=262144-correct:0x60000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2173,7 +3260,57 @@
{
"rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3f731dd7f158672f564c7a6152006bc24e9b955f2a5422965c051702e664976b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363",
+ "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
@@ -2233,7 +3370,7 @@
},
"024-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=524288-correct:0x60000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2266,7 +3403,57 @@
{
"rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc14333b4f96ce77d5a5456a2e59c0c66d4c88c09d236fb744b49fd47c9e137ce"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363",
+ "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
@@ -2326,7 +3513,7 @@
},
"025-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=655360-correct:0x60000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2359,7 +3546,57 @@
{
"rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb6a646f5e81d484b0f7cffa6945dc0fb7fe2f33d6b11b5db2432654b924bcf17"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363",
+ "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
@@ -2419,7 +3656,7 @@
},
"026-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=786432-correct:0x60000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2452,7 +3689,57 @@
{
"rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc3bad586ddc0340d805aa9b1a5f97330952ef7a3948fbf9e146676225236806d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363",
+ "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
@@ -2512,7 +3799,7 @@
},
"027-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=18446744073709551615-correct:0x60000-header:0xffffffffffffffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2545,7 +3832,57 @@
{
"rlp": "0xf9031bf90247a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0xffffffffffffffff",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf426be13bc5c813ab7060b838af68178056f07f7019ed3ad8a5cfb46e5152173"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002"
+ ],
+ "v": "0x01",
+ "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363",
+ "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048",
@@ -2605,7 +3942,7 @@
},
"028-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=0-correct:0x80000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2638,7 +3975,58 @@
{
"rlp": "0xf90334f9023fa07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xddc3ae0988d870acec8a468a47150f725d8f48e75e3e75293575c1ad4e070a27"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171",
+ "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
@@ -2698,7 +4086,7 @@
},
"029-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=131072-correct:0x80000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2731,7 +4119,58 @@
{
"rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3600e4ff4bc0514b24133ca26c152a841357c59012c3e86ac143049676ac6064"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171",
+ "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
@@ -2791,7 +4230,7 @@
},
"030-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=262144-correct:0x80000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2824,7 +4263,58 @@
{
"rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9d3bce6613b4d863376d052c116b181740539c3b7d5979ab059392bac623a892"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171",
+ "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
@@ -2884,7 +4374,7 @@
},
"031-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=393216-correct:0x80000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2917,7 +4407,58 @@
{
"rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x24bbdd5b1d17a1c4e12aa7e91b856002b4194aabc8c81abd64b72eab829ea728"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171",
+ "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
@@ -2977,7 +4518,7 @@
},
"032-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=655360-correct:0x80000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3010,7 +4551,58 @@
{
"rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1053c2c39e39939e51173395033aec8f56db8b5b426980c1fe9235fe436e306c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171",
+ "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
@@ -3070,7 +4662,7 @@
},
"033-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=786432-correct:0x80000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3103,7 +4695,58 @@
{
"rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1d5132fba3d9f48c455d0f686fab768f8cc2fc2d4a3ab706834c33cbeef3950b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171",
+ "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
@@ -3163,7 +4806,7 @@
},
"034-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=18446744073709551615-correct:0x80000-header:0xffffffffffffffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3196,7 +4839,58 @@
{
"rlp": "0xf9033cf90247a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0xffffffffffffffff",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa8a369d636f7b49c9a44f006754611f488ee590e31dffbae5c52d5933910d660"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003"
+ ],
+ "v": "0x00",
+ "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171",
+ "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799",
@@ -3256,7 +4950,7 @@
},
"035-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=0-correct:0xa0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3289,7 +4983,59 @@
{
"rlp": "0xf90358f9023fa0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4e45185e13d71637b6d7488cae82c12373cf37942b6ecc67e92bda0f10435e27"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8",
+ "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
@@ -3349,7 +5095,7 @@
},
"036-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=131072-correct:0xa0000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3382,7 +5128,59 @@
{
"rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x55701ca283fc873a288c3ddd01a1b08e496dfa46692fc67ed38efd659f1b36e2"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8",
+ "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
@@ -3442,7 +5240,7 @@
},
"037-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=262144-correct:0xa0000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3475,7 +5273,59 @@
{
"rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd323a35fdd82d63f6c476b12f02e31c4be1d436c5be660453c2690685139b464"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8",
+ "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
@@ -3535,7 +5385,7 @@
},
"038-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=393216-correct:0xa0000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3568,7 +5418,59 @@
{
"rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4d0ad23571c38a98890ba7b502db941c4bea7392269f45d667c577636b0356e5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8",
+ "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
@@ -3628,7 +5530,7 @@
},
"039-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=524288-correct:0xa0000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3661,7 +5563,59 @@
{
"rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf496fc9ef2f440a7dc194558da45eb9a6d39d456684072bdb0e6e40f9c53afaa"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8",
+ "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
@@ -3721,7 +5675,7 @@
},
"040-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=786432-correct:0xa0000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3754,7 +5708,59 @@
{
"rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0c0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xcc17c866bfd4df2d4176c3a1db421912cbfe9140c8af1da68ee15142c92208f0"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8",
+ "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
@@ -3814,7 +5820,7 @@
},
"041-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=18446744073709551615-correct:0xa0000-header:0xffffffffffffffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3847,7 +5853,59 @@
{
"rlp": "0xf90360f90247a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0xffffffffffffffff",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1bfccb460adf5476bd9b486ee905596b222ed22c4282b6885210dcc338f8dfaa"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004"
+ ],
+ "v": "0x01",
+ "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8",
+ "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64",
@@ -3907,7 +5965,7 @@
},
"042-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=0-correct:0xc0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3940,7 +5998,60 @@
{
"rlp": "0xf90379f9023fa01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2929c500bb945fc9b2451abba159273c088289c35f0f444b574a4bdec41ea952"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59",
+ "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
@@ -4000,7 +6111,7 @@
},
"043-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=131072-correct:0xc0000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4033,7 +6144,60 @@
{
"rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4599d69b9c936426fbc7666495e75f7ce4c1f780f8bcd81f2d3621a4d2c0e9f2"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59",
+ "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
@@ -4093,7 +6257,7 @@
},
"044-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=262144-correct:0xc0000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4126,7 +6290,60 @@
{
"rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x040000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7c9b63194c04b85ab395935bc917c59ae74e5616e70da3bac84c4eb53492d07e"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59",
+ "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
@@ -4186,7 +6403,7 @@
},
"045-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=393216-correct:0xc0000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4219,7 +6436,60 @@
{
"rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x060000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xaae35f56be7dd7f196a3c639f80edb7bf57638196014e91c98eecd6615c50646"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59",
+ "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
@@ -4279,7 +6549,7 @@
},
"046-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=524288-correct:0xc0000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4312,7 +6582,60 @@
{
"rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x080000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4dedfd4d169fe939eb535a86a689b6cfbfbb08e854781a97d654b42b09e971cc"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59",
+ "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
@@ -4372,7 +6695,7 @@
},
"047-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=655360-correct:0xc0000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4405,7 +6728,60 @@
{
"rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x0a0000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x367960cf3c87035e2416315129a603c72ec4e818eeb00d6a4baa86eef81edac0"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59",
+ "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
@@ -4465,7 +6841,7 @@
},
"048-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=18446744073709551615-correct:0xc0000-header:0xffffffffffffffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4498,7 +6874,60 @@
{
"rlp": "0xf90381f90247a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0",
"expectException": "invalid blob gas used",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0xffffffffffffffff",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0ff9f5fcba4add07c651b6baf06ea569ffd42cf9d30635014e293be5434791af"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000",
+ "0x0100000000000000000000000000000000000000000000000000000000000001",
+ "0x0100000000000000000000000000000000000000000000000000000000000002",
+ "0x0100000000000000000000000000000000000000000000000000000000000003",
+ "0x0100000000000000000000000000000000000000000000000000000000000004",
+ "0x0100000000000000000000000000000000000000000000000000000000000005"
+ ],
+ "v": "0x00",
+ "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59",
+ "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json
index 8892aa5d9e0..35bf3971022 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-zero_blobs_decrease_more_than_expected-correct:0x40000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0de9ecc1eaf7213e6ec4cc19358796096d60740ee2950a42ad179096ad7fcc83"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -94,7 +142,7 @@
},
"001-fork=Cancun-new_blobs=1-max_blobs_increase_more_than_expected-correct:0x100000-header:0x120000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -183,7 +231,55 @@
{
"rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x120000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x04022b55371e25f2a7fe8f942909a0335d33d598d118b3ad5d30948c4e069385"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json
index 47597607c8c..05e4f522d97 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-3-correct:0x40000-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d8f90247a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb0ae2da2b3c7b81cc9cbd85670aa8d70c2fa9520515347eeddae3a9d8971e088"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -94,7 +142,7 @@
},
"001-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-2-correct:0x40000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -127,7 +175,55 @@
{
"rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x03e22ea02241c69c4c2be271e559c96df35ed94bd5bb1dba70600f7708e9d5ad"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -187,7 +283,7 @@
},
"002-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-1-correct:0x40000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -220,7 +316,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0de9ecc1eaf7213e6ec4cc19358796096d60740ee2950a42ad179096ad7fcc83"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -280,7 +424,7 @@
},
"003-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=1-correct:0x40000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -313,7 +457,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd49d2d9433c30198e08f7e515f1477cca4ca9c7eac647a85422f165bd3e6fa1c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -373,7 +565,7 @@
},
"004-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=2-correct:0x40000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -406,7 +598,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xdfc8f35128ce527aa73bb7163f3ed32c4dbd0cf1eb438ecc9fb5f27e7f91a673"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -466,7 +706,7 @@
},
"005-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=3-correct:0x40000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -499,7 +739,55 @@
{
"rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4e55e06163495ac46a1f620d43451be2214b81a175b595ea8392c34d76b25d65"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -559,7 +847,7 @@
},
"006-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-3-correct:0x60000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -643,7 +931,55 @@
{
"rlp": "0xf902d0f9023fa0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x339669f618eab0fed6b09bf2a4db6e0bcb9e0150914f213088c3f803f6d54223"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
@@ -711,7 +1047,7 @@
},
"007-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-2-correct:0x60000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -795,7 +1131,55 @@
{
"rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x43306e063851dbc5fe4d597266ed0719506ecbde714dc2070d1a1962eaaf2f55"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
@@ -863,7 +1247,7 @@
},
"008-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-1-correct:0x60000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -947,7 +1331,55 @@
{
"rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1295cabb02c5167b5e5782e355a20542b428b098527a80a48c23fe542aef5c0c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
@@ -1015,7 +1447,7 @@
},
"009-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=1-correct:0x60000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1099,7 +1531,55 @@
{
"rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc86b89998dae1ab4a93b93f73a2c7efa6a27d54775c72bce59395c80fa0f6906"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
@@ -1167,7 +1647,7 @@
},
"010-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=2-correct:0x60000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1251,7 +1731,55 @@
{
"rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x45c9da351edf1d03771ff619674589575d6ec750233ddc34436d4c17989d6d21"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
@@ -1319,7 +1847,7 @@
},
"011-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=3-correct:0x60000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1403,7 +1931,55 @@
{
"rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0c0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf0102694c0c7740e15e4f454a0742be62dfcd1a39b9e7eb89d74b69654ad7213"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
@@ -1471,7 +2047,7 @@
},
"012-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-3-correct:0x80000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1556,7 +2132,55 @@
{
"rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0fd4ebe4b89efb507c63c2797883dc74a9d9638acced6eb48db87f2ff02c6c2d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
@@ -1624,7 +2248,7 @@
},
"013-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-2-correct:0x80000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1709,7 +2333,55 @@
{
"rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd49f0d2ebb05888eddcfb7fadacba580793c9e68fe0cdc4406137ff5c76d5504"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
@@ -1777,7 +2449,7 @@
},
"014-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-1-correct:0x80000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1862,7 +2534,55 @@
{
"rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x557d3db284b5acd34f707d6c039b26deac0c915f13d0fea37c03e0e52ca928b4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
@@ -1930,7 +2650,7 @@
},
"015-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=1-correct:0x80000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2015,7 +2735,55 @@
{
"rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9637613028e9fb345df14630252dab3bf3e902af92c5589300f03d0fed26b8fb"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
@@ -2083,7 +2851,7 @@
},
"016-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=2-correct:0x80000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2168,7 +2936,55 @@
{
"rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0c0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x981df8dcfec46cec990b584d2834be068426e14d393fae7f58925534e6286f8f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
@@ -2236,7 +3052,7 @@
},
"017-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=3-correct:0x80000-header:0xe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2321,7 +3137,55 @@
{
"rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x94e34e197dbb7e2f8fbc772df764cbc22a5654b1595eee51f416de1eb2af7448"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
@@ -2389,7 +3253,7 @@
},
"018-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-3-correct:0xa0000-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2475,7 +3339,55 @@
{
"rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5983d885dd90ae9f616570e394104123e0021089006d865673933e083534f77b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
@@ -2543,7 +3455,7 @@
},
"019-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-2-correct:0xa0000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2629,7 +3541,55 @@
{
"rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xba6ec2454209f9d05027836f40f00b591fecaae0b73734a00c8f7bc0b3ccd3c3"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
@@ -2697,7 +3657,7 @@
},
"020-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-1-correct:0xa0000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2783,7 +3743,55 @@
{
"rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe83ede7746ecbb9fbf1df8b764c86a70f8027c41e89c435c8d25229f4135643d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
@@ -2851,7 +3859,7 @@
},
"021-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=1-correct:0xa0000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2937,7 +3945,55 @@
{
"rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0c0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x38a0918ed38ba806574dc3f0731bc24f602fd9989d8d485fce9d25d37d7d866d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
@@ -3005,7 +4061,7 @@
},
"022-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=2-correct:0xa0000-header:0xe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3091,7 +4147,55 @@
{
"rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xefa4bd9695f4d88e036e8e178118d2dfd6c38107a49f2cbbaf6ec844c132622f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
@@ -3159,7 +4263,7 @@
},
"023-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=3-correct:0xa0000-header:0x100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3245,7 +4349,55 @@
{
"rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x100000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x856de497b4c16eac67b5a24435c69416578b9c071aff735b9e703db2b802cc16"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
@@ -3313,7 +4465,7 @@
},
"024-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-3-correct:0xc0000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3400,7 +4552,55 @@
{
"rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x551b2e6b4b8ba2680e3a6dd891cd557aea9f96d7ea98490a651055f798645b83"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
@@ -3468,7 +4668,7 @@
},
"025-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-2-correct:0xc0000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3555,7 +4755,55 @@
{
"rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xbea84808c88cb6e29ecaae8814df6ac245ca47d1117fd48547a946a61341328b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
@@ -3623,7 +4871,7 @@
},
"026-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-1-correct:0xc0000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3710,7 +4958,55 @@
{
"rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc1960e4db7343cf3a246ba042050ca35165a4d689eae4ccd25fb5c306f4f57a0"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
@@ -3778,7 +5074,7 @@
},
"027-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=1-correct:0xc0000-header:0xe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3865,7 +5161,55 @@
{
"rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x81dbd4064d93c5aab6fe38a32ee478918fba1c80fecdb865fb6bd87b06c0bdae"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
@@ -3933,7 +5277,7 @@
},
"028-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=2-correct:0xc0000-header:0x100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4020,7 +5364,55 @@
{
"rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x100000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5796db4972f4702931044a16ea470ce7979811cb4ba614f598c79f3162933216"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
@@ -4088,7 +5480,7 @@
},
"029-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=3-correct:0xc0000-header:0x120000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4175,7 +5567,55 @@
{
"rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x120000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xaaa0e83018503b6ba684b59c484f0ae0913d2c66c17cbaa58ee56826057fe26d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
@@ -4243,7 +5683,7 @@
},
"030-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-3-correct:0xe0000-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4331,7 +5771,55 @@
{
"rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4a20e26e16be55ffb69015d3c62a5b4f4da6ba060e840b70c1ba636dac1a7420"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
@@ -4399,7 +5887,7 @@
},
"031-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-2-correct:0xe0000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4487,7 +5975,55 @@
{
"rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9fbda2fe93560b668f81a426a3898b0d902e8a2f4a525713ea6fa414c08d2c54"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
@@ -4555,7 +6091,7 @@
},
"032-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-1-correct:0xe0000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4643,7 +6179,55 @@
{
"rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0c0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x01914643f9df69a42a361b490836b2ac535c117561ed2bc9c6dfe538a3522c1e"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
@@ -4711,7 +6295,7 @@
},
"033-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=1-correct:0xe0000-header:0x100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4799,7 +6383,55 @@
{
"rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x100000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x53f8feb778c5a8a12999e1e283f86580ca1f939aec3e8bc3b1ebd6688133cd45"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
@@ -4867,7 +6499,7 @@
},
"034-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=2-correct:0xe0000-header:0x120000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4955,7 +6587,55 @@
{
"rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x120000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xcd9c1275dd52932ec06145cb4d759a61184e1ad786f8d909304c5d88a3e2b63c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
@@ -5023,7 +6703,7 @@
},
"035-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=3-correct:0xe0000-header:0x140000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5111,7 +6791,55 @@
{
"rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x140000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd30712caac1715aa7abc3b0b1513a017fdb474850bbacc9e3f35e674cc3c34be"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
@@ -5179,7 +6907,7 @@
},
"036-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-3-correct:0x100000-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5268,7 +6996,55 @@
{
"rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xaa70a27dfe4b618f47190331ed9fa3b04549c4f441aa2b411c2944a51f56497f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
@@ -5336,7 +7112,7 @@
},
"037-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-2-correct:0x100000-header:0xc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5425,7 +7201,55 @@
{
"rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0c0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3f5d65d9e335ab083575ed6dc011b5ce6925e397d982e887618307f8177b43a6"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
@@ -5493,7 +7317,7 @@
},
"038-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-1-correct:0x100000-header:0xe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5582,7 +7406,55 @@
{
"rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0e0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9d205ca0795a646a3f07bd784f9aea3847b15507707411af94ee12df701eee91"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
@@ -5650,7 +7522,7 @@
},
"039-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=1-correct:0x100000-header:0x120000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5739,7 +7611,55 @@
{
"rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x120000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x04022b55371e25f2a7fe8f942909a0335d33d598d118b3ad5d30948c4e069385"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
@@ -5807,7 +7727,7 @@
},
"040-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=2-correct:0x100000-header:0x140000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5896,7 +7816,55 @@
{
"rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x140000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xded21ed01dc3ad27cee657f625423f13ad4f9145a42790fe43b44798fcb36be4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
@@ -5964,7 +7932,7 @@
},
"041-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=3-correct:0x100000-header:0x160000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6053,7 +8021,55 @@
{
"rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083160000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x160000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3ff127126873bd983cba5609cbda84b3cefc41f3868710e86f5369e399e99f20"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json
index d1f9a4db087..59eda0540a0 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=1-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x279a529129127a4a10458da09cbe14d709e2710e0542424605d426874f506d0d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -94,7 +142,7 @@
},
"001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=2-correct:0x0-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -127,7 +175,55 @@
{
"rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x6e6d67adde0b863c310dc90ef7e540e2f6d115f73a9dde3749e17ebbc487cafd"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -187,7 +283,7 @@
},
"002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=3-correct:0x0-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -220,7 +316,55 @@
{
"rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x90f5d3db2868b920767af18c2766c4a90f63330ca2961b62cd26a4467f8321c6"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -280,7 +424,7 @@
},
"003-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=4-correct:0x0-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -313,7 +457,55 @@
{
"rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd472f9caabaa16d7a17602aaaeeca9b3bc56c314e1a2224491aa44c3e469d812"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -373,7 +565,7 @@
},
"004-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -406,7 +598,55 @@
{
"rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8dfc1d38019e27d67b17c92756c554706a55d8af40f2bd6cab2b524932313dc5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -466,7 +706,7 @@
},
"005-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=1-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -550,7 +790,55 @@
{
"rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe1890a1874bab52cb38fd4da0e6385ab6281f483e793c197b1b3320353dee521"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -618,7 +906,7 @@
},
"006-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=2-correct:0x0-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -702,7 +990,55 @@
{
"rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xade2f23a18f8b480676f8ca81a6f3c3cc0fb9fed2f43fdb67fe70122c6f1acfb"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -770,7 +1106,7 @@
},
"007-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=3-correct:0x0-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -854,7 +1190,55 @@
{
"rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb53ed3203d8286e094e2db61994b507b0694319ef7fc3b3c3c1f41783a7949d9"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -922,7 +1306,7 @@
},
"008-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=4-correct:0x0-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1006,7 +1390,55 @@
{
"rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf8bfc313c18370fafa9337ec94e22b9d50b799c2ac483f99661291b2f9668875"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -1074,7 +1506,7 @@
},
"009-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1158,7 +1590,55 @@
{
"rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x82b82b6d42c728905355bc47cb94c4dad4fc5a68aab7926938b0dfa0e39ea112"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -1226,7 +1706,7 @@
},
"010-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=1-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1311,7 +1791,55 @@
{
"rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7fedb9d82c174f9c82e221fc374a9c7d00f011772691eb47bbb6c760edf20bcd"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -1379,7 +1907,7 @@
},
"011-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=2-correct:0x0-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1464,7 +1992,55 @@
{
"rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x92a54bc4706324ae937f15fa268099125b97d9d82b4dfa9af24721bd056dab45"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -1532,7 +2108,7 @@
},
"012-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=3-correct:0x0-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1617,7 +2193,55 @@
{
"rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4c55e88603f01ecb20f0d76ea3061b2b76ad3d44ade6228ceb1f6897102290f5"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -1685,7 +2309,7 @@
},
"013-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=4-correct:0x0-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1770,7 +2394,55 @@
{
"rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd5a2bd674772fa846b13df678989662661ededb88e1296488a8282c10478c592"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -1838,7 +2510,7 @@
},
"014-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1923,7 +2595,55 @@
{
"rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd5e84bee1b05a3edecacb7819a648332b4595b6cfb590529979fb8931b03073a"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -1991,7 +2711,7 @@
},
"015-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=1-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2077,7 +2797,55 @@
{
"rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x54b362e74b481c7c0217ccbc115b19dab35b1190f70af84434a697b23c1f29c0"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
@@ -2145,7 +2913,7 @@
},
"016-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=2-correct:0x0-header:0x40000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2231,7 +2999,55 @@
{
"rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0b899666c3eb7b5c3fc5901efe152ba5b556eead7be85a2078131ec8ebf3be12"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
@@ -2299,7 +3115,7 @@
},
"017-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=3-correct:0x0-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2385,7 +3201,55 @@
{
"rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5edd1bc4bbe2a421f653edafc1f8d007e98b92a97c814b0725e4516f60a313b9"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
@@ -2453,7 +3317,7 @@
},
"018-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=4-correct:0x0-header:0x80000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2539,7 +3403,55 @@
{
"rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x080000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa7fcf925c270e3d2632dce16b238e9bb5840dfd5a00fd0b40371255833a7ffa7"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
@@ -2607,7 +3519,7 @@
},
"019-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2693,7 +3605,55 @@
{
"rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9addc6900ea55030f22a4e4ec0bafa26a2a01dbc49ff4a4d93f07a0f46b7c924"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json
index 48bb9a13b95..a0874a28e81 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7dff2c672335720232c3165f02fd59147bece4da6726ee4489519a93e25f44bc"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -94,7 +142,7 @@
},
"001-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -127,7 +175,55 @@
{
"rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x0cfae36c8af526e9ec689009390067a8d23eff90c90b66660349a97e190431a3"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -187,7 +283,7 @@
},
"002-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -220,7 +316,55 @@
{
"rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd7594d92dc2ed600c9238f63d5594b41ba3debd8318a292412c45bd0f95570a9"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395",
@@ -280,7 +424,7 @@
},
"003-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -364,7 +508,55 @@
{
"rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4f5de42ad8ab2374e99e02c5349b8ccf9c711de250a9306c8aeb59f8e71e64b4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -432,7 +624,7 @@
},
"004-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -516,7 +708,55 @@
{
"rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x00aea39a5bac3cb28ef99fddfc1af2f4636e37bd9587635501c89928fdca2b0d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -584,7 +824,7 @@
},
"005-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -668,7 +908,55 @@
{
"rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1c035f687d79a682e8907a0b6e3b0514d036dc37e59f3eeed3e5c9ff492b2bea"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c",
@@ -736,7 +1024,7 @@
},
"006-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -821,7 +1109,55 @@
{
"rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x637eaf7f1f8cdeff2b3b2c37bfdf2a8c0350bc7d8786205171e05ae652606aad"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -889,7 +1225,7 @@
},
"007-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -974,7 +1310,55 @@
{
"rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x438ce03a67260dc80c2c246a4d6dfceb46573a6f8015972cd60136e227de0d31"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -1042,7 +1426,7 @@
},
"008-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1127,7 +1511,55 @@
{
"rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd7b8ae067b3f6cef3a4744ae0c5a4fd63cb5036195f970515877cd6e87c7b370"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5",
@@ -1195,7 +1627,7 @@
},
"009-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1228,7 +1660,55 @@
{
"rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x251daf4d10e7317d32d196f677d28f22d364fca98bbba460bf5638bcc222e271"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
@@ -1288,7 +1768,7 @@
},
"010-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1321,7 +1801,55 @@
{
"rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe458b2300ccdbfee5991c2edf5ae3fd25590bb2fee98c4146df0dba6effddbca"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
@@ -1381,7 +1909,7 @@
},
"011-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1414,7 +1942,55 @@
{
"rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xdf9c1511da850a12a552a12e8764e15a9008cecd5b4665d017ecc4dc8422ce0d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
@@ -1474,7 +2050,7 @@
},
"012-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1558,7 +2134,55 @@
{
"rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x98b58823c8a484f7fd5f3443f2f73ebc7a29296e7c8b8147bbdc76403117e46f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
@@ -1626,7 +2250,7 @@
},
"013-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1710,7 +2334,55 @@
{
"rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x1524e1b58870ac8817c0912c1595600ec745a047637b6629d382b0d952664440"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
@@ -1778,7 +2450,7 @@
},
"014-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1862,7 +2534,55 @@
{
"rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb22aa9359891c509d3da3f1fe616caff49fd83f7c27b88eeaee2c2d51f4ac84b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
@@ -1930,7 +2650,7 @@
},
"015-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2015,7 +2735,55 @@
{
"rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe79d8035636e9db7915177db23263bb1fe28a6c9519e4e330b28d6d91da66388"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
@@ -2083,7 +2851,7 @@
},
"016-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2168,7 +2936,55 @@
{
"rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x137348e9d827671fa088364f0b29913e815f6da7cdfb34ab0a7f348f9b682eca"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
@@ -2236,7 +3052,7 @@
},
"017-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2321,7 +3137,55 @@
{
"rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9cb881bd97b6708160887f26c964321d3a40d6d5dce14b3ba1892922fd196c91"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
@@ -2389,7 +3253,7 @@
},
"018-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2422,7 +3286,55 @@
{
"rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x151720d532377171a5d7c7eb65460d2cb0e19d25057a5c94fa5fdcf559ee2abc"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608",
@@ -2482,7 +3394,7 @@
},
"019-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2515,7 +3427,55 @@
{
"rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa083d462f70a9618101f74ec6e99b27464e7dcc077c36a2080ab5eab8c15d2ca"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608",
@@ -2575,7 +3535,7 @@
},
"020-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2608,7 +3568,55 @@
{
"rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x4041fa015ad4e9b2ce2f431479d606ec6234d79c270d8019cce253ee3abdd32e"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608",
@@ -2668,7 +3676,7 @@
},
"021-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2752,7 +3760,55 @@
{
"rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xed3260b4f94f3d2d34ec58df7b15623f917bf37dde231b0cc9a9e38517e28df4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781",
@@ -2820,7 +3876,7 @@
},
"022-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2904,7 +3960,55 @@
{
"rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x27916b37dfe5b22437e1fe11ba5550227d1078217e51107bc3b5ec1e2fbedd53"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781",
@@ -2972,7 +4076,7 @@
},
"023-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3056,7 +4160,55 @@
{
"rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe9ef5e1315660d647379956b1ca6ac321819f20b765f9a4bea7c641f9360a23f"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781",
@@ -3124,7 +4276,7 @@
},
"024-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x20000-header:0xfffffffffffa0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3209,7 +4361,55 @@
{
"rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffa0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3647bbbc02ff7e100754f2fd75b3898ccb07aee8789990ef85f14f5f911e7588"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc",
@@ -3277,7 +4477,7 @@
},
"025-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x20000-header:0xfffffffffffc0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3362,7 +4562,55 @@
{
"rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffc0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x120c63037cc27944cf99be4cf7e3cc4b5a840dcc60c226085d61e0b9c6a17b1c"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc",
@@ -3430,7 +4678,7 @@
},
"026-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x20000-header:0xfffffffffffe0000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3515,7 +4763,55 @@
{
"rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0xfffffffffffe0000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9be3f8f0119a75c43501be2dab131593348351d7369ea1bd63049202858bbf27"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json
index a074dfa4eb3..d0a3f3ba748 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=4-header_excess_blob_gas_delta=1-correct:0xa0000-header:0xa0001": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -88,7 +88,55 @@
{
"rlp": "0xf902d3f90242a051084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0a0001",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x888935fe8f8d9b54b63ec265c25278030a5a6edd1ba5fb9c0f1a99c8b70668ca"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92",
@@ -156,7 +204,7 @@
},
"001-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=4-header_excess_blob_gas_delta=131071-correct:0xa0000-header:0xbffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -243,7 +291,55 @@
{
"rlp": "0xf902d3f90242a051084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830bffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x0bffff",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd6481397c07cd3d92a1cb540f6a6fcd42b240ab77eada4d61ed21ff55c9a610e"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92",
@@ -311,7 +407,7 @@
},
"002-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=2-header_excess_blob_gas_delta=-1-correct:0x60000-header:0x5ffff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -396,7 +492,55 @@
{
"rlp": "0xf902d3f90242a01ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008305ffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x05ffff",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc62968c5d3520c661fdb0ad8d22eec817b51ca591a08b03bf11266a3ced90f1e"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389",
@@ -464,7 +608,7 @@
},
"003-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=2-header_excess_blob_gas_delta=-131071-correct:0x60000-header:0x40001": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -549,7 +693,55 @@
{
"rlp": "0xf902d3f90242a01ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x040001",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8681cf4b0a9a3cd3b9f0c8a5ce7d3820af9e90626d30b0d2ac118bd0db18f14d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json
index 54eabc34e98..fd096c52283 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=0-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,55 @@
{
"rlp": "0xf902d3f90242a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7c9c5e52f5ac8e2863ab84062fbb8c899eb33a547faef3d11829a6e42361df2d"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f",
@@ -94,7 +142,7 @@
},
"001-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=1-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -178,7 +226,55 @@
{
"rlp": "0xf902d3f90242a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9957f93f58e39671569c14219543849a07a96a92f38f86cdbcd8b0f69449d552"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242",
@@ -246,7 +342,7 @@
},
"002-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=2-correct:0x0-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -331,7 +427,55 @@
{
"rlp": "0xf902d3f90242a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa2edc9acd7bffeab6a4b3f00d9b2c95308d66d713007e39fe810d813a53cd0f2"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b",
@@ -399,7 +543,7 @@
},
"003-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=4-correct:0x40000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -486,7 +630,55 @@
{
"rlp": "0xf902d3f90242a0036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8deecf6fd484f4f96c5d4973082912e4a2f143ca752583eef60df72521003c81"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035",
@@ -554,7 +746,7 @@
},
"004-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=5-correct:0x60000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -642,7 +834,55 @@
{
"rlp": "0xf902d3f90242a0a8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf99ebc0b09f18a8b31200fcef85c41f92dbc73df644ca81e86261d7a045cc8c8"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e",
@@ -710,7 +950,7 @@
},
"005-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=6-correct:0x80000-header:0x20000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -799,7 +1039,55 @@
{
"rlp": "0xf902d3f90242a0185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x020000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc22e29fafd25d5c367e3ff074f522c77cfc495af6671a72e6988cf7bcc0e63bb"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448",
@@ -867,7 +1155,7 @@
},
"006-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=0-correct:0x0-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -900,7 +1188,55 @@
{
"rlp": "0xf902d3f90242a0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x66fb11e49ba8e9a947ccf328dbeb2df52f3f9859a456370058ccae1f24b6e03b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a",
@@ -960,7 +1296,7 @@
},
"007-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=1-correct:0x20000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1044,7 +1380,55 @@
{
"rlp": "0xf902d3f90242a0d6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x094cfcffdf918126ebffd53fe9915620e48f71ef64cd18c0ba8dbe6635dfbba4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94",
@@ -1112,7 +1496,7 @@
},
"008-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=2-correct:0x40000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1197,7 +1581,55 @@
{
"rlp": "0xf902d3f90242a0d9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x86bb8646a4c26823a6a8f1cf56cb78509501cb206ca3ea7cbee1fd7005ebb6d6"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8",
@@ -1265,7 +1697,7 @@
},
"009-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=4-correct:0x80000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1352,7 +1784,55 @@
{
"rlp": "0xf902d3f90242a05a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9506ae1d339b490315a40b5d56abcbcf541fb870842dae738c22f670edf4ec8b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f",
@@ -1420,7 +1900,7 @@
},
"010-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=5-correct:0xa0000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1508,7 +1988,55 @@
{
"rlp": "0xf902d3f90242a020e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xfe69cf54660058df13fda3a799b90fcf37623edbf8dd14ed31e59951b6de332b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e",
@@ -1576,7 +2104,7 @@
},
"011-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=6-correct:0xc0000-header:0x60000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1665,7 +2193,55 @@
{
"rlp": "0xf902d3f90242a0e88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x060000",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x77ac223e52df1d5f4f02cd3cd182f21c5003dd2e52e79c30ef875a9ac1d0ee85"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json
index ba2c49873d0..b8739ae16bc 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=4-header_excess_blob_gas=0-correct:0x20000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -88,7 +88,55 @@
{
"rlp": "0xf902d0f9023fa0105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xff5bb957ccb75a6ed36fc826460614bc26f45f1289a363686a07cb311a441ed1"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95",
@@ -156,7 +204,7 @@
},
"001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=5-header_excess_blob_gas=0-correct:0x40000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -244,7 +292,55 @@
{
"rlp": "0xf902d0f9023fa01311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb5b598f5a6c74524df90cbd5ce87506302e3d24e7edb2f11b6889164894169fb"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d",
@@ -312,7 +408,7 @@
},
"002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=6-header_excess_blob_gas=0-correct:0x60000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -401,7 +497,55 @@
{
"rlp": "0xf902d0f9023fa0ec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3f827eebbf7952580e8a0bc8027a70f2b4d36e85fce68cec81a038db51082e27"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json
index 8ece03b3bbd..35c64d7d97d 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-parent_blobs=0-new_blobs=0-header_excess_blob_gas=0-correct:0x40000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -34,7 +34,51 @@
{
"rlp": "0xf902aaf9023ca07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8213e2ac114e758a9273a79e81c2a474d4f0e511e479ac449fffbcfc1f92409c"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489",
@@ -94,7 +138,7 @@
},
"001-fork=Cancun-parent_blobs=0-new_blobs=1-header_excess_blob_gas=0-correct:0x40000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -127,7 +171,55 @@
{
"rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x03e22ea02241c69c4c2be271e559c96df35ed94bd5bb1dba70600f7708e9d5ad"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2",
@@ -187,7 +279,7 @@
},
"002-fork=Cancun-parent_blobs=1-new_blobs=0-header_excess_blob_gas=0-correct:0x60000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -271,7 +363,51 @@
{
"rlp": "0xf902aaf9023ca0663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8a022a7364c783897e1a2b9662fac648cba640b8750a5043d105849700ec356c"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5",
@@ -339,7 +475,7 @@
},
"003-fork=Cancun-parent_blobs=1-new_blobs=1-header_excess_blob_gas=0-correct:0x60000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -423,7 +559,55 @@
{
"rlp": "0xf902d0f9023fa0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x339669f618eab0fed6b09bf2a4db6e0bcb9e0150914f213088c3f803f6d54223"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69",
@@ -491,7 +675,7 @@
},
"004-fork=Cancun-parent_blobs=2-new_blobs=0-header_excess_blob_gas=0-correct:0x80000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -576,7 +760,51 @@
{
"rlp": "0xf902aaf9023ca07a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xca8acafe08197348b76db1b4eb4915685be1365d1ccb5a58679823d0d1064d8e"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662",
@@ -644,7 +872,7 @@
},
"005-fork=Cancun-parent_blobs=2-new_blobs=1-header_excess_blob_gas=0-correct:0x80000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -729,7 +957,55 @@
{
"rlp": "0xf902d0f9023fa0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x59d9597c7fcea6563904225aa6cc46c44fe4c12f7f254da2f671802443332417"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93",
@@ -797,7 +1073,7 @@
},
"006-fork=Cancun-parent_blobs=3-new_blobs=0-header_excess_blob_gas=0-correct:0xa0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -883,7 +1159,51 @@
{
"rlp": "0xf902aaf9023ca022d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x22d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8ac1d9edc3a003f16d40d08b0a178cd4984df3b18a221d219c0beff724eddf74"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x22d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273e",
@@ -951,7 +1271,7 @@
},
"007-fork=Cancun-parent_blobs=3-new_blobs=1-header_excess_blob_gas=0-correct:0xa0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1037,7 +1357,55 @@
{
"rlp": "0xf902d0f9023fa0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x423645d83ab41441c51302853949dbb8d715d9fa7dfb18e68c2ed520a6d33d57"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3",
@@ -1105,7 +1473,7 @@
},
"008-fork=Cancun-parent_blobs=4-new_blobs=0-header_excess_blob_gas=0-correct:0xc0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1192,7 +1560,51 @@
{
"rlp": "0xf902aaf9023ca0cfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xcfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7ce855d3c80a3df68f543800bde87a5bba1e04d7ae7e36132efb869633c45928"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xcfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6a",
@@ -1260,7 +1672,7 @@
},
"009-fork=Cancun-parent_blobs=4-new_blobs=1-header_excess_blob_gas=0-correct:0xc0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1347,7 +1759,55 @@
{
"rlp": "0xf902d0f9023fa01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x6516b31d5cae2af036db6940221b03f86d33ed67e5212dbc3717325244f9a736"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de",
@@ -1415,7 +1875,7 @@
},
"010-fork=Cancun-parent_blobs=5-new_blobs=0-header_excess_blob_gas=0-correct:0xe0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1503,7 +1963,51 @@
{
"rlp": "0xf902aaf9023ca02562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x2562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xba1876e43c6c6b1919ebc97e1220c35522d5dff2abd16945aa9e42e896972dfe"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x2562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969",
@@ -1571,7 +2075,7 @@
},
"011-fork=Cancun-parent_blobs=5-new_blobs=1-header_excess_blob_gas=0-correct:0xe0000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1659,7 +2163,55 @@
{
"rlp": "0xf902d0f9023fa04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x11d1629f71659470dc8a9190a057b7980523062a985ede6c601f3fe6440d94c4"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e",
@@ -1727,7 +2279,7 @@
},
"012-fork=Cancun-parent_blobs=6-new_blobs=0-header_excess_blob_gas=0-correct:0x100000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1816,7 +2368,51 @@
{
"rlp": "0xf902aaf9023ca015b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x15b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041",
+ "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc4589f8b3eda4f4e1268176cb7878788e29413049c8d76fbb6e66d17403c7591"
+ },
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663",
+ "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x15b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5",
@@ -1884,7 +2480,7 @@
},
"013-fork=Cancun-parent_blobs=6-new_blobs=1-header_excess_blob_gas=0-correct:0x100000-header:0x0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1973,7 +2569,55 @@
{
"rlp": "0xf902d0f9023fa01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0",
"expectException": "invalid excess blob gas",
- "blocknumber": "2"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290",
+ "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7",
+ "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x02",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0xa861",
+ "timestamp": "0x18",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x020000",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8fef8aa28f4472591334a02f003f07947d42ceb41cfbd625fd2f30fbc3d1219b"
+ },
+ "transactions": [
+ {
+ "type": "0x03",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0xafc8",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x01",
+ "data": "0x",
+ "accessList": [],
+ "maxFeePerBlobGas": "0x01",
+ "blobVersionedHashes": [
+ "0x0100000000000000000000000000000000000000000000000000000000000000"
+ ],
+ "v": "0x00",
+ "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626",
+ "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json
index 76f66098889..72b0102e8a9 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-max_blobs-correct_initial_blob_gas_calc": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -936,7 +936,7 @@
},
"001-fork=ShanghaiToCancunAtTime15k-no_blobs-correct_initial_blob_gas_calc": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1895,7 +1895,7 @@
},
"002-fork=ShanghaiToCancunAtTime15k-target_blobs-correct_initial_blob_gas_calc": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json
index f099b5722c9..3d953e1c152 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=False-blob_fields_missing_post_fork": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -436,7 +436,33 @@
{
"rlp": "0xf90241f9023ba064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
"expectException": "blob fields missing post fork",
- "blocknumber": "16"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x10",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x3a98",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5155c84b69a8af6ee6f06d7414f1e434d01dbd8a5eab1ac429b246525e319e16"
+ },
+ "transactions": [],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea",
@@ -472,7 +498,7 @@
},
"001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=False-blob_gas_used_missing=True-blob_fields_missing_post_fork": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -907,7 +933,33 @@
{
"rlp": "0xf90241f9023ba064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
"expectException": "blob fields missing post fork",
- "blocknumber": "16"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x10",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x3a98",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5155c84b69a8af6ee6f06d7414f1e434d01dbd8a5eab1ac429b246525e319e16"
+ },
+ "transactions": [],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea",
@@ -943,7 +995,7 @@
},
"002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=True-blob_fields_missing_post_fork": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1378,7 +1430,32 @@
{
"rlp": "0xf90240f9023aa064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
"expectException": "blob fields missing post fork",
- "blocknumber": "16"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x10",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x3a98",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xacb59ea4cb2ed97ba5f95d4d2bf5401c0b63b69bdbf0215a5bdcf43e9f9eefea"
+ },
+ "transactions": [],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json
index 02e13c6536f..8fddbd8e7aa 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=False-invalid_pre_fork_blob_fields": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -409,7 +409,32 @@
{
"rlp": "0xf90220f9021aa07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0",
"expectException": "invalid pre fork blob fields",
- "blocknumber": "15"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x0f",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x3a97",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "excessBlobGas": "0x00",
+ "hash": "0x1c1e9818fb8c040850c98909c62ec5dae58dedcefcf7e7c5c2055dd2868168f1"
+ },
+ "transactions": [],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e",
@@ -445,7 +470,7 @@
},
"001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=False-blob_gas_used_present=True-invalid_pre_fork_blob_fields": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -853,7 +878,32 @@
{
"rlp": "0xf90220f9021aa07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0",
"expectException": "invalid pre fork blob fields",
- "blocknumber": "15"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x0f",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x3a97",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "hash": "0x1c1e9818fb8c040850c98909c62ec5dae58dedcefcf7e7c5c2055dd2868168f1"
+ },
+ "transactions": [],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e",
@@ -889,7 +939,7 @@
},
"002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=True-invalid_pre_fork_blob_fields": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1297,7 +1347,33 @@
{
"rlp": "0xf90221f9021ba07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080c0c0c0",
"expectException": "invalid pre fork blob fields",
- "blocknumber": "15"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x0f",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x3a97",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "hash": "0xeecbcca0613b3c5c92cf0a66a029c904038ef385f26f23c99a550e8a91fe73aa"
+ },
+ "transactions": [],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e",
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json
index e4327e1d988..361f33f2eaf 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-success=False-out_of_bounds_z": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -131,7 +131,7 @@
},
"001-fork=Cancun-success=False-out_of_bounds_y": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -259,7 +259,7 @@
},
"002-fork=Cancun-success=False-correct_proof_1_input_too_short": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -389,7 +389,7 @@
},
"003-fork=Cancun-success=False-correct_proof_1_input_too_short_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -519,7 +519,7 @@
},
"004-fork=Cancun-success=False-correct_proof_1_input_too_long": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -649,7 +649,7 @@
},
"005-fork=Cancun-success=False-correct_proof_1_input_extra_long": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -779,7 +779,7 @@
},
"006-fork=Cancun-success=False-null_inputs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -904,7 +904,7 @@
},
"007-fork=Cancun-success=False-zeros_inputs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1029,7 +1029,7 @@
},
"008-fork=Cancun-success=False-zeros_inputs_correct_versioned_hash": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1157,7 +1157,7 @@
},
"009-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0x00": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1287,7 +1287,7 @@
},
"010-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0x02": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1417,7 +1417,7 @@
},
"011-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0xff": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json
index e7ccfcc0aa5..ab973ba7356 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k-correct_proof-point_evaluation_precompile_before_fork": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json
index a803ae414af..27cc151ca05 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun--call_type=CALL-correct": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -133,7 +133,7 @@
},
"001-fork=Cancun--call_type=CALL-incorrect": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -263,7 +263,7 @@
},
"002-fork=Cancun--call_type=CALL-insufficient_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -393,7 +393,7 @@
},
"003-fork=Cancun--call_type=DELEGATECALL-correct": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -525,7 +525,7 @@
},
"004-fork=Cancun--call_type=DELEGATECALL-incorrect": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -655,7 +655,7 @@
},
"005-fork=Cancun--call_type=DELEGATECALL-insufficient_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -785,7 +785,7 @@
},
"006-fork=Cancun--call_type=CALLCODE-correct": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -917,7 +917,7 @@
},
"007-fork=Cancun--call_type=CALLCODE-incorrect": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1047,7 +1047,7 @@
},
"008-fork=Cancun--call_type=CALLCODE-insufficient_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1177,7 +1177,7 @@
},
"009-fork=Cancun--call_type=STATICCALL-correct": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1309,7 +1309,7 @@
},
"010-fork=Cancun--call_type=STATICCALL-incorrect": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1439,7 +1439,7 @@
},
"011-fork=Cancun--call_type=STATICCALL-insufficient_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json
index de7fa804608..bedc322bae9 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_02e696ada7d4631d": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -131,9 +131,9 @@
},
"sealEngine": "NoProof"
},
- "001-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db": {
+ "001-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_05c1f3685f3393f0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -164,19 +164,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249a0487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8da0f5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325a00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a059e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bda046be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340c0c0",
+ "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0daa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5aa064694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579a0cffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303248c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a056cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c219f8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x04023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249",
- "transactionsTrie": "0x487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8d",
- "receiptTrie": "0xf5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043",
+ "stateRoot": "0xdaa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5a",
+ "transactionsTrie": "0x64694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579",
+ "receiptTrie": "0xcffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0325a0",
+ "gasUsed": "0x03248c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -186,7 +186,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e"
+ "hash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a"
},
"blocknumber": "1",
"transactions": [
@@ -199,11 +199,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x01",
- "r": "0x59e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bd",
- "s": "0x46be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340",
+ "v": "0x00",
+ "r": "0x56cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c21",
+ "s": "0x8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -211,7 +211,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e",
+ "lastblockhash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -256,16 +256,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f8a0",
+ "balance": "0xffffffffffffea002c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "002-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2": {
+ "002-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -296,19 +296,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249a0487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8da0f5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325a00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a059e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bda046be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a",
- "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360",
- "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5",
+ "stateRoot": "0x04023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249",
+ "transactionsTrie": "0x487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8d",
+ "receiptTrie": "0xf5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032240",
+ "gasUsed": "0x0325a0",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -318,7 +318,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617"
+ "hash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e"
},
"blocknumber": "1",
"transactions": [
@@ -331,11 +331,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x01",
- "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02",
- "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22",
+ "r": "0x59e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bd",
+ "s": "0x46be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -343,7 +343,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617",
+ "lastblockhash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -388,16 +388,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffea1040",
+ "balance": "0xffffffffffffe9f8a0",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "003-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899": {
+ "003-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -428,19 +428,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527a09d06f6b26cd14b0d3f21382ffa54d56ae7f91deca6ebc10b2fa2eab3dad5fc1ea0107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326780c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa729910bad9058b4e277f3ddba7396df505a0191c38e5ad08af1d0d30792c887e99bf754b7932b83e1cef4e1ec678339c001a0165f8a7b48f74493495d217f6a2847408ac4d4ea6bd618c644e1a8d8a9fc79eda0487d842fabe0ba38ef64e623c7c2254e16b8905ecf116e90aa29c1acd6854409c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xa99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527",
- "transactionsTrie": "0x9d06f6b26cd14b0d3f21382ffa54d56ae7f91deca6ebc10b2fa2eab3dad5fc1e",
- "receiptTrie": "0x107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343d",
+ "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a",
+ "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360",
+ "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032678",
+ "gasUsed": "0x032240",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -450,7 +450,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x7408de1fdaac5a736ef5d1b4617695930ade4e68c57632314ef45cc03dd33cab"
+ "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617"
},
"blocknumber": "1",
"transactions": [
@@ -463,11 +463,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa729910bad9058b4e277f3ddba7396df505a0191c38e5ad08af1d0d30792c887e99bf754b7932b83e1cef4e1ec678339",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x01",
- "r": "0x165f8a7b48f74493495d217f6a2847408ac4d4ea6bd618c644e1a8d8a9fc79ed",
- "s": "0x487d842fabe0ba38ef64e623c7c2254e16b8905ecf116e90aa29c1acd6854409",
+ "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02",
+ "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -475,7 +475,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x7408de1fdaac5a736ef5d1b4617695930ade4e68c57632314ef45cc03dd33cab",
+ "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -520,16 +520,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f2b8",
+ "balance": "0xffffffffffffea1040",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "004-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_26b753dec0560daa": {
+ "004-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_177b58dc7a46b08f": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -560,19 +560,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749a013fd9224a0424d2558396842595cb72e0789f1b6cbe952ea4ea5f8b49a689d19a099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8931692634033cbbfe2db48c027dbb93f123754205bb7c7a56797966f83272b13b4be34f80c15bf8d4ed0b740ffb3c64c080a0365e0602b422eea53fbad362bfc3baca8b4575c9881992df6864c47bafadb985a009c6f75c387d7a57a4e6ddcfb1d509eeacb54d427b5b5dc3da129469b00f4fb5c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9da0b835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30a04bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0a043eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x5ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749",
- "transactionsTrie": "0x13fd9224a0424d2558396842595cb72e0789f1b6cbe952ea4ea5f8b49a689d19",
- "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64",
+ "stateRoot": "0x9ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9d",
+ "transactionsTrie": "0xb835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30",
+ "receiptTrie": "0x4bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032690",
+ "gasUsed": "0x032480",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -582,7 +582,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x4e08d977d444b7aa15b2d3fbd9a6d7f6d3b05c90591a67e81f9b3de82f9664f0"
+ "hash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2"
},
"blocknumber": "1",
"transactions": [
@@ -595,11 +595,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8931692634033cbbfe2db48c027dbb93f123754205bb7c7a56797966f83272b13b4be34f80c15bf8d4ed0b740ffb3c64",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x00",
- "r": "0x365e0602b422eea53fbad362bfc3baca8b4575c9881992df6864c47bafadb985",
- "s": "0x09c6f75c387d7a57a4e6ddcfb1d509eeacb54d427b5b5dc3da129469b00f4fb5",
+ "r": "0x041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0",
+ "s": "0x43eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -607,7 +607,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x4e08d977d444b7aa15b2d3fbd9a6d7f6d3b05c90591a67e81f9b3de82f9664f0",
+ "lastblockhash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -652,16 +652,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f210",
+ "balance": "0xffffffffffffea0080",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "005-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_31ebd010e6098750": {
+ "005-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -692,19 +692,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4a02bdfa3637aca485645fba59eab7f0d894ac4223ce26f8deed3ed34b4a03ffe3ba0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a57dd03e11678afb060af17cc3dc049e02f2814e13ed1dadc94d1105106ffa834907d1176420f637d51edbcd120274fbc080a0c7cd32b2b7670e9391f010eaba058ec6bd4a69af05a4eb480241c43deb1fdf78a00c073099ee965d382aa8c4ec7806d2a83e9a0f8024c49cda67ea9123f139cc45c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527a043789cfcc04c94354e30ca1cb5082ccd5d15d1c61296d1705538899289d5e61aa0107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326780c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655692c51ff81dd71dab71cefecd79e8274b4b7ba36a0f40e2dc086bc4061c7f63249877db23297212991fd63e07b7ebc348c080a083b15b98bed71805ae022f208ab10677f215fdc8f516788b9105ea1002831446a06c604d50ca527c1e81de361282a867fcae3161b9c66672bccfc3decfab89da75c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x16bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4",
- "transactionsTrie": "0x2bdfa3637aca485645fba59eab7f0d894ac4223ce26f8deed3ed34b4a03ffe3b",
- "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8",
+ "stateRoot": "0xa99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527",
+ "transactionsTrie": "0x43789cfcc04c94354e30ca1cb5082ccd5d15d1c61296d1705538899289d5e61a",
+ "receiptTrie": "0x107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343d",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032804",
+ "gasUsed": "0x032678",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -714,7 +714,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x287e1550e484ddd54b81569ad482dcbad4411040ad1dc239a4dd5510cca91c8d"
+ "hash": "0xfdad33e800bbb22101dfd15d3403ca534fef91c88e7a43c5ff5c246efae3215a"
},
"blocknumber": "1",
"transactions": [
@@ -727,11 +727,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a57dd03e11678afb060af17cc3dc049e02f2814e13ed1dadc94d1105106ffa834907d1176420f637d51edbcd120274fb",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655692c51ff81dd71dab71cefecd79e8274b4b7ba36a0f40e2dc086bc4061c7f63249877db23297212991fd63e07b7ebc348",
"accessList": [],
"v": "0x00",
- "r": "0xc7cd32b2b7670e9391f010eaba058ec6bd4a69af05a4eb480241c43deb1fdf78",
- "s": "0x0c073099ee965d382aa8c4ec7806d2a83e9a0f8024c49cda67ea9123f139cc45",
+ "r": "0x83b15b98bed71805ae022f208ab10677f215fdc8f516788b9105ea1002831446",
+ "s": "0x6c604d50ca527c1e81de361282a867fcae3161b9c66672bccfc3decfab89da75",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -739,7 +739,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x287e1550e484ddd54b81569ad482dcbad4411040ad1dc239a4dd5510cca91c8d",
+ "lastblockhash": "0xfdad33e800bbb22101dfd15d3403ca534fef91c88e7a43c5ff5c246efae3215a",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -784,16 +784,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e7e4",
+ "balance": "0xffffffffffffe9f2b8",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "006-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3208425794224c3f": {
+ "006-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_26b753dec0560daa": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -824,19 +824,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749a0ffa174a7267f0fd675444d1106b4e36f7f04acb483a5f46ed0f52076d6610322a099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b82ded761997f2c6f1bb3db1e1dada2ef06d936551667c82f659b75f99d2da2068b81340823ee4e829a93c9fbed7810dc080a0a933405fb1acd6fd8a3d63b0c1719808d76cb052267d28b26597c59d7debad12a0444e79244e52dda7b22f522e87729c7e0f2e42dabf4d2bca86a1a3bd5ad35fc4c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e",
- "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f",
- "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b",
+ "stateRoot": "0x5ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749",
+ "transactionsTrie": "0xffa174a7267f0fd675444d1106b4e36f7f04acb483a5f46ed0f52076d6610322",
+ "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x03224c",
+ "gasUsed": "0x032690",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -846,7 +846,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e"
+ "hash": "0x46905b806271903059045b328481b7bc4971e46bc61f679ee3c6f41eda23b60b"
},
"blocknumber": "1",
"transactions": [
@@ -859,11 +859,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b82ded761997f2c6f1bb3db1e1dada2ef06d936551667c82f659b75f99d2da2068b81340823ee4e829a93c9fbed7810d",
"accessList": [],
"v": "0x00",
- "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af",
- "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d",
+ "r": "0xa933405fb1acd6fd8a3d63b0c1719808d76cb052267d28b26597c59d7debad12",
+ "s": "0x444e79244e52dda7b22f522e87729c7e0f2e42dabf4d2bca86a1a3bd5ad35fc4",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -871,7 +871,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e",
+ "lastblockhash": "0x46905b806271903059045b328481b7bc4971e46bc61f679ee3c6f41eda23b60b",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -916,16 +916,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffea0fec",
+ "balance": "0xffffffffffffe9f210",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "007-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_36817bfd67de97a8": {
+ "007-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_2b76dc9e3abf42f3": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -956,19 +956,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0a0c8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebba0a8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324500c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a00c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5ea0618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8dc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a04a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0a04b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0",
- "transactionsTrie": "0xc8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebb",
- "receiptTrie": "0xa8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85",
+ "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283",
+ "transactionsTrie": "0x4a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9",
+ "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032450",
+ "gasUsed": "0x032318",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -978,7 +978,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93"
+ "hash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8"
},
"blocknumber": "1",
"transactions": [
@@ -991,11 +991,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x01",
- "r": "0x0c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5e",
- "s": "0x618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8d",
+ "v": "0x00",
+ "r": "0x9195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0",
+ "s": "0x4b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1003,7 +1003,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93",
+ "lastblockhash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1048,16 +1048,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffea01d0",
+ "balance": "0xffffffffffffea0a58",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "008-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_392169c16a2e5ef6": {
+ "008-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_31ebd010e6098750": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1088,19 +1088,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0857cc89f8ce1b0e853a8a51026372cbf3a68906794639fc7a08dff3fd607963da0aa16625da437f5999076de40b8d7f4c210e77baf2ce2fd77d6b17349c8c664a4a05742ba1338d1fec304a28a3a37f1763771bae5dacbabdee58251b90e4f76a3dab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327d40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a69fc1abb7125e6ae566a95cacd832cca426b8c8ecd7397b19a8f003103bc11a508fc6dceab3a2a16cc83782d295c08fc080a0c7832239d8eecbc9d0a0fd27503cfa7a74a9515ae20e176e176e2fcb78bcb410a0389663dacc45e114ed46a209186fa3d7ecc46657d969bfd86cb95050caf26bf4c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc0c32ad033d56b450fd0efb7406dd2f8bea933d7bfd691cdf07366e2e7e2a3ea05a95a607cfdb40bc540295c12eba153e7929bffef2afb400051c5b1b29916151a0ddd8e54de43cee140d6658fcf27a111de638a4c94b6be71367a2d82ed31d2b40b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327e00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a62ad71d14c5719385c0686f1871430475bf3a00f0aa3f7b8dd99a9abc2160744faf0070725e00b60ad9a026a15b1a8cc001a0631d859dbd7c6db2a8fc72b785f40e5e5fe6b164ac1be86464ea6d3f64ba4e4ba023c5b8b60ca99d38cf1da2f0efd449a6868d217648eea05ee1b85a6b6496ac97c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x857cc89f8ce1b0e853a8a51026372cbf3a68906794639fc7a08dff3fd607963d",
- "transactionsTrie": "0xaa16625da437f5999076de40b8d7f4c210e77baf2ce2fd77d6b17349c8c664a4",
- "receiptTrie": "0x5742ba1338d1fec304a28a3a37f1763771bae5dacbabdee58251b90e4f76a3da",
+ "stateRoot": "0xcc0c32ad033d56b450fd0efb7406dd2f8bea933d7bfd691cdf07366e2e7e2a3e",
+ "transactionsTrie": "0x5a95a607cfdb40bc540295c12eba153e7929bffef2afb400051c5b1b29916151",
+ "receiptTrie": "0xddd8e54de43cee140d6658fcf27a111de638a4c94b6be71367a2d82ed31d2b40",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0327d4",
+ "gasUsed": "0x0327e0",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -1110,7 +1110,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xb50320eefe8ea72c79cb91eb34eb7f1d178a70a9590182ae163e0399d87c9900"
+ "hash": "0x89910fbfd8a674c8793add9c88070744cf350faa984ecb5e81005a17f7a3cc07"
},
"blocknumber": "1",
"transactions": [
@@ -1123,11 +1123,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a69fc1abb7125e6ae566a95cacd832cca426b8c8ecd7397b19a8f003103bc11a508fc6dceab3a2a16cc83782d295c08f",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a62ad71d14c5719385c0686f1871430475bf3a00f0aa3f7b8dd99a9abc2160744faf0070725e00b60ad9a026a15b1a8c",
"accessList": [],
- "v": "0x00",
- "r": "0xc7832239d8eecbc9d0a0fd27503cfa7a74a9515ae20e176e176e2fcb78bcb410",
- "s": "0x389663dacc45e114ed46a209186fa3d7ecc46657d969bfd86cb95050caf26bf4",
+ "v": "0x01",
+ "r": "0x631d859dbd7c6db2a8fc72b785f40e5e5fe6b164ac1be86464ea6d3f64ba4e4b",
+ "s": "0x23c5b8b60ca99d38cf1da2f0efd449a6868d217648eea05ee1b85a6b6496ac97",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1135,7 +1135,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xb50320eefe8ea72c79cb91eb34eb7f1d178a70a9590182ae163e0399d87c9900",
+ "lastblockhash": "0x89910fbfd8a674c8793add9c88070744cf350faa984ecb5e81005a17f7a3cc07",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1180,16 +1180,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e934",
+ "balance": "0xffffffffffffe9e8e0",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "009-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70": {
+ "009-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3208425794224c3f": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1220,19 +1220,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321",
- "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c",
- "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff",
+ "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e",
+ "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f",
+ "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x03221c",
+ "gasUsed": "0x03224c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -1242,7 +1242,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac"
+ "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e"
},
"blocknumber": "1",
"transactions": [
@@ -1255,11 +1255,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x00",
- "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307",
- "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe",
+ "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af",
+ "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1267,7 +1267,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac",
+ "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1312,16 +1312,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffea113c",
+ "balance": "0xffffffffffffea0fec",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "010-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12": {
+ "010-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_36817bfd67de97a8": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1352,19 +1352,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a05e11b330192611cdcfa0feea3801bc7983000d4df1fe49ca6b09fcf6ecf7e6f0a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a86f18630d3803118cb0f7a970e04cf58612a91f5cd4f7f9aead0a5e44996484cad44f6a21a37d9188f84e1cfe5d70ffc080a0ff3fbb44abc71d2dee94a0b8877b22f7f4b49c1a83d79184a8c352607d5d2072a04beecb447b8cfd0b5cb89a7d5cdf25790977a328eb410055be4d6bb702d23fa6c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0a0c8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebba0a8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324500c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a00c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5ea0618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1",
- "transactionsTrie": "0x5e11b330192611cdcfa0feea3801bc7983000d4df1fe49ca6b09fcf6ecf7e6f0",
- "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030",
+ "stateRoot": "0xd2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0",
+ "transactionsTrie": "0xc8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebb",
+ "receiptTrie": "0xa8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326b4",
+ "gasUsed": "0x032450",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -1374,7 +1374,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x0d526e96748501c47f088bff4e5c4ede71ace77b73d370fe7ffad3d132805772"
+ "hash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93"
},
"blocknumber": "1",
"transactions": [
@@ -1387,11 +1387,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a86f18630d3803118cb0f7a970e04cf58612a91f5cd4f7f9aead0a5e44996484cad44f6a21a37d9188f84e1cfe5d70ff",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x00",
- "r": "0xff3fbb44abc71d2dee94a0b8877b22f7f4b49c1a83d79184a8c352607d5d2072",
- "s": "0x4beecb447b8cfd0b5cb89a7d5cdf25790977a328eb410055be4d6bb702d23fa6",
+ "v": "0x01",
+ "r": "0x0c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5e",
+ "s": "0x618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1399,7 +1399,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x0d526e96748501c47f088bff4e5c4ede71ace77b73d370fe7ffad3d132805772",
+ "lastblockhash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1444,16 +1444,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f114",
+ "balance": "0xffffffffffffea01d0",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "011-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c87ec986c2656c2": {
+ "011-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_392169c16a2e5ef6": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1484,19 +1484,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a07b1cbfd4e24409ab544f63ab8e0a5f5b3d936f218303eed643e6e15ca08248fea092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9b437dcd924834a69a566f90d8b83cb80e7c58a08da289389b3b1ffb528fd8bc9b92e6397c42b40a1e876ba116bdcc7f9c001a0d7be953f974f1fbb497344dd7e82e8a9f8f907ed98dafb0c7a1e462b7b35a6a5a003b5c6def1da64cc0774959a3019f1da04bcd576004e8c8a99945b90a413580bc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07cc97310447fcaa82fdc3f873488df4eb10e7c70d50905dcf4d3ab721d106652a073574e54028e33ad01b4af5cc7e84dc575f67146acc32e52ad8e4002355692c8a024e67c66eca491a8172390693a89b89c1a73f4e051ac6bf6d65a9990d773849eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327c80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06aa86c458b3065e7ec244033a2ade91a7499561f482419a3a372c42a636dad98262a2ce926d142fd7cfe26ca148efe8b4c001a0d678cea8e66554926e473108363de892c0244b84ea29d4d288e62e254a54265ca07ab8176b3128def01d906a19a46f04f4cc9fabd6f75499e4e704500c1703d84ac0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34",
- "transactionsTrie": "0x7b1cbfd4e24409ab544f63ab8e0a5f5b3d936f218303eed643e6e15ca08248fe",
- "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4",
+ "stateRoot": "0x7cc97310447fcaa82fdc3f873488df4eb10e7c70d50905dcf4d3ab721d106652",
+ "transactionsTrie": "0x73574e54028e33ad01b4af5cc7e84dc575f67146acc32e52ad8e4002355692c8",
+ "receiptTrie": "0x24e67c66eca491a8172390693a89b89c1a73f4e051ac6bf6d65a9990d773849e",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032834",
+ "gasUsed": "0x0327c8",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -1506,7 +1506,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xb731150e3e7ceff37012fbc1c67eeb8d733c42086310601ad1aef6f15e01e0ad"
+ "hash": "0x3fb31f2fed0b3def4347bc0213b7c5278d7914ab5e0c41ff1d71c9a2277d59e5"
},
"blocknumber": "1",
"transactions": [
@@ -1519,11 +1519,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9b437dcd924834a69a566f90d8b83cb80e7c58a08da289389b3b1ffb528fd8bc9b92e6397c42b40a1e876ba116bdcc7f9",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06aa86c458b3065e7ec244033a2ade91a7499561f482419a3a372c42a636dad98262a2ce926d142fd7cfe26ca148efe8b4",
"accessList": [],
"v": "0x01",
- "r": "0xd7be953f974f1fbb497344dd7e82e8a9f8f907ed98dafb0c7a1e462b7b35a6a5",
- "s": "0x03b5c6def1da64cc0774959a3019f1da04bcd576004e8c8a99945b90a413580b",
+ "r": "0xd678cea8e66554926e473108363de892c0244b84ea29d4d288e62e254a54265c",
+ "s": "0x7ab8176b3128def01d906a19a46f04f4cc9fabd6f75499e4e704500c1703d84a",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1531,7 +1531,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xb731150e3e7ceff37012fbc1c67eeb8d733c42086310601ad1aef6f15e01e0ad",
+ "lastblockhash": "0x3fb31f2fed0b3def4347bc0213b7c5278d7914ab5e0c41ff1d71c9a2277d59e5",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1576,16 +1576,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e694",
+ "balance": "0xffffffffffffe9e988",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "012-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7": {
+ "012-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_395cf6d697d1a743": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1616,13 +1616,13 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a04cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a03bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0ebaa074e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39dc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a049a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055ba04e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07bc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
"stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4",
- "transactionsTrie": "0x4cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921",
+ "transactionsTrie": "0x49a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911",
"receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
@@ -1638,7 +1638,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38"
+ "hash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920"
},
"blocknumber": "1",
"transactions": [
@@ -1651,11 +1651,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x00",
- "r": "0x3bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0eba",
- "s": "0x74e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39d",
+ "v": "0x01",
+ "r": "0x5e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055b",
+ "s": "0x4e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07b",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1663,7 +1663,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38",
+ "lastblockhash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1715,9 +1715,9 @@
},
"sealEngine": "NoProof"
},
- "013-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_420f2a187ce77035": {
+ "013-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1748,19 +1748,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0fb4648b9bdb1b09117c15f53cb5a617590dc4469b4c279ceb11fa47e64533543a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c99956ed657b632d9de65783593320c0b0f4195ca853c9616ba11e244bf2333f6da4755883e9995210b20fbd78f9c205a5c080a0f86136db60a0d1a9d22e454a4d5100b8171b90d56d2e796b7cea6b3aa9edec83a07b35a05f8bb65ebc114f365c5b1d2fed84a5f898e2ac82cb9a827d8cd9af400ec0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
- "transactionsTrie": "0xfb4648b9bdb1b09117c15f53cb5a617590dc4469b4c279ceb11fa47e64533543",
- "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
+ "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321",
+ "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c",
+ "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326c0",
+ "gasUsed": "0x03221c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -1770,7 +1770,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x96004a854a4b2618e32086f5390c7ab502104d2c5bf49dce02e70ee448474001"
+ "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac"
},
"blocknumber": "1",
"transactions": [
@@ -1783,11 +1783,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c99956ed657b632d9de65783593320c0b0f4195ca853c9616ba11e244bf2333f6da4755883e9995210b20fbd78f9c205a5",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x00",
- "r": "0xf86136db60a0d1a9d22e454a4d5100b8171b90d56d2e796b7cea6b3aa9edec83",
- "s": "0x7b35a05f8bb65ebc114f365c5b1d2fed84a5f898e2ac82cb9a827d8cd9af400e",
+ "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307",
+ "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1795,7 +1795,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x96004a854a4b2618e32086f5390c7ab502104d2c5bf49dce02e70ee448474001",
+ "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1840,16 +1840,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f0c0",
+ "balance": "0xffffffffffffea113c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "014-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_444b73ff54a19b44": {
+ "014-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1880,19 +1880,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0408f4a0ec54734fbc9dcfd9dd4d37dfdc696127ca9a0bc5cff44d7d10c368d04a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a09849cc7d35d8eed85743c4cd106d4fdb9221a16f72d1aca93459b4113d378058a003083ef391f8c36ad0b2f778109103113dca52888b96bc9e29d861b3517703b0c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa00e963416d15be0d3a5cd99152b9674c916a944b4df2288e276655641511b312fa0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b72d80393dc39beea3857cb3719277138876b2b207f1d5e54dd62a14e3242d123b5a6db066181ff01a51c26c9d2f400bc001a0151b808659ccfe811301c4788adb2db2dfe21a81a72012b60bee9a2bae100196a00cb5d87c6b81f3278488c06a59191c62c345510b9be93e110dc7170d819084e5c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
- "transactionsTrie": "0x408f4a0ec54734fbc9dcfd9dd4d37dfdc696127ca9a0bc5cff44d7d10c368d04",
- "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
+ "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea",
+ "transactionsTrie": "0x0e963416d15be0d3a5cd99152b9674c916a944b4df2288e276655641511b312f",
+ "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326c0",
+ "gasUsed": "0x0326a8",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -1902,7 +1902,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x2883996f0dbf3beb1dd18332841d646cd2582d096268e0fca27138c60dbd1d54"
+ "hash": "0x00af2784d23487e9d271d8880c38b74f50ff3ecca33d8d195e94e906fef7b444"
},
"blocknumber": "1",
"transactions": [
@@ -1915,11 +1915,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b72d80393dc39beea3857cb3719277138876b2b207f1d5e54dd62a14e3242d123b5a6db066181ff01a51c26c9d2f400b",
"accessList": [],
- "v": "0x00",
- "r": "0x9849cc7d35d8eed85743c4cd106d4fdb9221a16f72d1aca93459b4113d378058",
- "s": "0x03083ef391f8c36ad0b2f778109103113dca52888b96bc9e29d861b3517703b0",
+ "v": "0x01",
+ "r": "0x151b808659ccfe811301c4788adb2db2dfe21a81a72012b60bee9a2bae100196",
+ "s": "0x0cb5d87c6b81f3278488c06a59191c62c345510b9be93e110dc7170d819084e5",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -1927,7 +1927,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x2883996f0dbf3beb1dd18332841d646cd2582d096268e0fca27138c60dbd1d54",
+ "lastblockhash": "0x00af2784d23487e9d271d8880c38b74f50ff3ecca33d8d195e94e906fef7b444",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -1972,16 +1972,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f0c0",
+ "balance": "0xffffffffffffe9f168",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "015-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_53a9bdf4f75196da": {
+ "015-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c87ec986c2656c2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2012,19 +2012,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38a02d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fba0d0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325d00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a07988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71ea045a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a06dbdee5ff5d24cefd571b4be8867465b926774ac7d13983e74206e2922855daba0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9c080a065ad99046fa60994d98049bf11bd7a1b8e3d9bac77dd8430ac504ebcd791c664a0251815b3d5d650c64c1cef1e5cac22fa5db5261de82303d0b089304623563bf6c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x7f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38",
- "transactionsTrie": "0x2d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fb",
- "receiptTrie": "0xd0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983",
+ "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0",
+ "transactionsTrie": "0x6dbdee5ff5d24cefd571b4be8867465b926774ac7d13983e74206e2922855dab",
+ "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0325d0",
+ "gasUsed": "0x032828",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2034,7 +2034,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2"
+ "hash": "0x41de1c6ff6589caea81fd364f0a89ff3800b0f0e3bd603d2536acb4908de72b0"
},
"blocknumber": "1",
"transactions": [
@@ -2047,11 +2047,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9",
"accessList": [],
- "v": "0x01",
- "r": "0x7988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71e",
- "s": "0x45a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4",
+ "v": "0x00",
+ "r": "0x65ad99046fa60994d98049bf11bd7a1b8e3d9bac77dd8430ac504ebcd791c664",
+ "s": "0x251815b3d5d650c64c1cef1e5cac22fa5db5261de82303d0b089304623563bf6",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2059,7 +2059,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2",
+ "lastblockhash": "0x41de1c6ff6589caea81fd364f0a89ff3800b0f0e3bd603d2536acb4908de72b0",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -2104,16 +2104,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f750",
+ "balance": "0xffffffffffffe9e6e8",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "016-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_7db4f140a955dd1a": {
+ "016-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2144,19 +2144,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4a046551e36b570ce1310b3a125c62dcde41593c1f58eb66b60aee663fd65f4026ea0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca788bfb4ce7aa40228147817d8b5ddad533e456b622dea6733e1813b8d1ce9e03ef5fb58d983e29da3187ba840c5a79759c080a05499ec7fc39c8cad3bac53f471e4fffca077c33dc9e879c0ed791b63b06a15bea0473ed87fde84d2968bfb93702b9c49bcd54ae648f0355e94f3553777ae7b0abdc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a04cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a03bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0ebaa074e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x16bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4",
- "transactionsTrie": "0x46551e36b570ce1310b3a125c62dcde41593c1f58eb66b60aee663fd65f4026e",
- "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8",
+ "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4",
+ "transactionsTrie": "0x4cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921",
+ "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032804",
+ "gasUsed": "0x03245c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2166,7 +2166,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x53c440e41e48c40007282910d128ed39efbfff21b89bde109dbf6723d082175c"
+ "hash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38"
},
"blocknumber": "1",
"transactions": [
@@ -2179,11 +2179,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca788bfb4ce7aa40228147817d8b5ddad533e456b622dea6733e1813b8d1ce9e03ef5fb58d983e29da3187ba840c5a79759",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x00",
- "r": "0x5499ec7fc39c8cad3bac53f471e4fffca077c33dc9e879c0ed791b63b06a15be",
- "s": "0x473ed87fde84d2968bfb93702b9c49bcd54ae648f0355e94f3553777ae7b0abd",
+ "r": "0x3bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0eba",
+ "s": "0x74e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2191,7 +2191,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x53c440e41e48c40007282910d128ed39efbfff21b89bde109dbf6723d082175c",
+ "lastblockhash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -2236,16 +2236,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e7e4",
+ "balance": "0xffffffffffffea017c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "017-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_83e53423a2dd93fe": {
+ "017-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_420f2a187ce77035": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2276,19 +2276,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749a07279a050fd8efe3d997e93091f222c3fcc8bbbad562d19f92c0ae14483c5825aa099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c992cccc70d97c2eeb444077721221cbf048a7bcd5742a1c896c868672527c8fb92687db1d8c6970064375957af91b0b89c001a0cb7b1454bfa0c4a760e33af49661acd7b4d777fca3de31e945858fe718cd185fa05a53b3ab897a7cd0407c48050758ba22f1896e2d80dfc830d98dafaae435b64dc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa02b9f94b53eec56840c51f3286f960f32edcfe09abdd0220af1f2639ef4664d4da0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0689012990b0ca02775bd9df8145f6c936444b83f54df1f5f274fb4312800a6505dd000ee8ec7b0ea6d72092a3daf0bffbc001a066027d84b8afca376d92300737100ec643b920f5c726945852c74213b24f2ac0a0059b3c8ac597bd7da74db18e0f2c8f35a8af8a9b552e114cc4c388a87f970080c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x5ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749",
- "transactionsTrie": "0x7279a050fd8efe3d997e93091f222c3fcc8bbbad562d19f92c0ae14483c5825a",
- "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64",
+ "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea",
+ "transactionsTrie": "0x2b9f94b53eec56840c51f3286f960f32edcfe09abdd0220af1f2639ef4664d4d",
+ "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032690",
+ "gasUsed": "0x0326a8",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2298,7 +2298,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x1bcbb678769459f713545a76fa513c040f4367063984b45966c12311f8dadc3f"
+ "hash": "0xa2a6c215a3ae2f9622129d76f8c00a7c74a4baa8a16f776cf2723c96ad4167de"
},
"blocknumber": "1",
"transactions": [
@@ -2311,11 +2311,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c992cccc70d97c2eeb444077721221cbf048a7bcd5742a1c896c868672527c8fb92687db1d8c6970064375957af91b0b89",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0689012990b0ca02775bd9df8145f6c936444b83f54df1f5f274fb4312800a6505dd000ee8ec7b0ea6d72092a3daf0bffb",
"accessList": [],
"v": "0x01",
- "r": "0xcb7b1454bfa0c4a760e33af49661acd7b4d777fca3de31e945858fe718cd185f",
- "s": "0x5a53b3ab897a7cd0407c48050758ba22f1896e2d80dfc830d98dafaae435b64d",
+ "r": "0x66027d84b8afca376d92300737100ec643b920f5c726945852c74213b24f2ac0",
+ "s": "0x059b3c8ac597bd7da74db18e0f2c8f35a8af8a9b552e114cc4c388a87f970080",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2323,7 +2323,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x1bcbb678769459f713545a76fa513c040f4367063984b45966c12311f8dadc3f",
+ "lastblockhash": "0xa2a6c215a3ae2f9622129d76f8c00a7c74a4baa8a16f776cf2723c96ad4167de",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -2368,16 +2368,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f210",
+ "balance": "0xffffffffffffe9f168",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "018-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b24f8997145435c": {
+ "018-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_444b73ff54a19b44": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2408,19 +2408,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45ba04593efcd83a2bb60e68dbfbed0633436742209bf3f1fcd25412e5063c494b0ffa05d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef87177e99700d9be917c648299b919b210d0449761bfd425c6fbf7c9cb48c44525715bf62bad3fe046a066ac3b1c747fcc080a00352ea47e3592e0f854ff65972aa1e79e0692b81e403a56a4198f2eee7c37131a063c2b3341e9249b23f8160046ff0a7ca55bc0d742ca9e091657211639be8f8cbc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a08b68e65eba37ecde36e3ae469ea1a4ca0730cf32c87545c1df2fbd7419b510f4a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa060b350ad63d61979b80b25258e7cc6caf781080222e0209b4a0b074decca874afc5c41de3313d8ed217d905e6ada43c080a09ccdbb5ec0941f399dadd55bf451be3c606cc76f0afac3c1d383a2cfd77f2217a020f6645644bb64019245bfc1b544333ef6f8b897e46f3dc675576fbcb90711c5c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45b",
- "transactionsTrie": "0x4593efcd83a2bb60e68dbfbed0633436742209bf3f1fcd25412e5063c494b0ff",
- "receiptTrie": "0x5d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6c",
+ "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
+ "transactionsTrie": "0x8b68e65eba37ecde36e3ae469ea1a4ca0730cf32c87545c1df2fbd7419b510f4",
+ "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032534",
+ "gasUsed": "0x0326c0",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2430,7 +2430,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x73a2769be161d1583d2026105adab2735c0e0d72864541d14f9e894824c4c339"
+ "hash": "0x617bb359f99934463a0d4913db6650f53d2a58818ead69b693ca2f4117c6e576"
},
"blocknumber": "1",
"transactions": [
@@ -2443,11 +2443,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef87177e99700d9be917c648299b919b210d0449761bfd425c6fbf7c9cb48c44525715bf62bad3fe046a066ac3b1c747fc",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa060b350ad63d61979b80b25258e7cc6caf781080222e0209b4a0b074decca874afc5c41de3313d8ed217d905e6ada43",
"accessList": [],
"v": "0x00",
- "r": "0x0352ea47e3592e0f854ff65972aa1e79e0692b81e403a56a4198f2eee7c37131",
- "s": "0x63c2b3341e9249b23f8160046ff0a7ca55bc0d742ca9e091657211639be8f8cb",
+ "r": "0x9ccdbb5ec0941f399dadd55bf451be3c606cc76f0afac3c1d383a2cfd77f2217",
+ "s": "0x20f6645644bb64019245bfc1b544333ef6f8b897e46f3dc675576fbcb90711c5",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2455,7 +2455,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x73a2769be161d1583d2026105adab2735c0e0d72864541d14f9e894824c4c339",
+ "lastblockhash": "0x617bb359f99934463a0d4913db6650f53d2a58818ead69b693ca2f4117c6e576",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -2500,16 +2500,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9fb94",
+ "balance": "0xffffffffffffe9f0c0",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "019-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b754afb690c47e1": {
+ "019-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_53a9bdf4f75196da": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2540,19 +2540,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a0066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a071beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41fa02a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38a02d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fba0d0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325d00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a07988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71ea045a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4",
- "transactionsTrie": "0x066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35",
- "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009",
+ "stateRoot": "0x7f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38",
+ "transactionsTrie": "0x2d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fb",
+ "receiptTrie": "0xd0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x03245c",
+ "gasUsed": "0x0325d0",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2562,7 +2562,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a"
+ "hash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2"
},
"blocknumber": "1",
"transactions": [
@@ -2575,11 +2575,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x00",
- "r": "0x71beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41f",
- "s": "0x2a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3",
+ "v": "0x01",
+ "r": "0x7988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71e",
+ "s": "0x45a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2587,7 +2587,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a",
+ "lastblockhash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -2632,16 +2632,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffea017c",
+ "balance": "0xffffffffffffe9f750",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "020-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af669445747d2585": {
+ "020-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_585454b31673dd62": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2672,19 +2672,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a04189b0fc6a65b4ba8f83b5d20f2723715a4380114bb3b6835fa582e983d1e711a092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7ad37aa0a5c07d64c137a3cc01893418c1ae6e766ca8842a295cad27cbde933aad4f499d96619f957a730d014927eaf72c080a053772f6f14038064762d55af0d02216131ce0d88b5e9bf719feb797d6558a742a06fe86cc2d9bdf117e40a328f99167dfa3ed9d3a2c280099fca1c2372b9bccc67c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524aa0282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094a096b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303230c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a061f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eba043a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34",
- "transactionsTrie": "0x4189b0fc6a65b4ba8f83b5d20f2723715a4380114bb3b6835fa582e983d1e711",
- "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4",
+ "stateRoot": "0xd46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524a",
+ "transactionsTrie": "0x282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094",
+ "receiptTrie": "0x96b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dcc",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032834",
+ "gasUsed": "0x03230c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2694,7 +2694,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x4ad811ec3d9e4a5b1c5471cfd6da836b5b4b12ed6a5d6e2079007727f8903876"
+ "hash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e"
},
"blocknumber": "1",
"transactions": [
@@ -2707,11 +2707,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7ad37aa0a5c07d64c137a3cc01893418c1ae6e766ca8842a295cad27cbde933aad4f499d96619f957a730d014927eaf72",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x00",
- "r": "0x53772f6f14038064762d55af0d02216131ce0d88b5e9bf719feb797d6558a742",
- "s": "0x6fe86cc2d9bdf117e40a328f99167dfa3ed9d3a2c280099fca1c2372b9bccc67",
+ "v": "0x01",
+ "r": "0x61f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eb",
+ "s": "0x43a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2719,7 +2719,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x4ad811ec3d9e4a5b1c5471cfd6da836b5b4b12ed6a5d6e2079007727f8903876",
+ "lastblockhash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -2764,16 +2764,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e694",
+ "balance": "0xffffffffffffea0aac",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "021-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af8b75f664ed7d43": {
+ "021-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_7db4f140a955dd1a": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2804,19 +2804,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a0d4b593b9620dbdf5fc6eeff42ade9d1d3b9c65f35eadb26be34e7fad5a0fcda6a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8efb5f81312368c3d0778349fa9a37838d9da05f5019f13e98c451d44adbeaa24385efecc246958bc1e80ade37693425c080a0d57e78f2a5f190e8f97666a783bbc5aebf5cb1107a447b3a888d84b9e84a78a5a007e6a42d9564a5d6c774f0861246c710d6b751c173aad84385b31aa822a8a24fc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4a00d60273b5913393d18b1dee6f0bacf412e39d5f0a17635fcf060e97c1c1acf21a0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a9506a8dc7f3f720a592a79a4e711e28d8596854bac66b9cb2d6d361704f1735442d47ea09fda5e0984f0928ce7d2f5f6c080a07a8a5d3c14755c2b79477b0f01e07472e1efe376361f355d19c79fae5a944ef5a06dc7422c4897f446a3b9775e688ffcd21a7070a4b4e1fdbb9b676d97e7a49e10c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1",
- "transactionsTrie": "0xd4b593b9620dbdf5fc6eeff42ade9d1d3b9c65f35eadb26be34e7fad5a0fcda6",
- "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030",
+ "stateRoot": "0x16bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4",
+ "transactionsTrie": "0x0d60273b5913393d18b1dee6f0bacf412e39d5f0a17635fcf060e97c1c1acf21",
+ "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326b4",
+ "gasUsed": "0x032804",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2826,7 +2826,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x5eb2ac10109074f5552bcd7dfca728860d7cfc7631b7a0dc9c12725e2bbbae08"
+ "hash": "0xd887114b3cad6bd08b4df188cda62eb9953c036c2f19a7696267e9aefb08c119"
},
"blocknumber": "1",
"transactions": [
@@ -2839,11 +2839,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8efb5f81312368c3d0778349fa9a37838d9da05f5019f13e98c451d44adbeaa24385efecc246958bc1e80ade37693425",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a9506a8dc7f3f720a592a79a4e711e28d8596854bac66b9cb2d6d361704f1735442d47ea09fda5e0984f0928ce7d2f5f6",
"accessList": [],
"v": "0x00",
- "r": "0xd57e78f2a5f190e8f97666a783bbc5aebf5cb1107a447b3a888d84b9e84a78a5",
- "s": "0x07e6a42d9564a5d6c774f0861246c710d6b751c173aad84385b31aa822a8a24f",
+ "r": "0x7a8a5d3c14755c2b79477b0f01e07472e1efe376361f355d19c79fae5a944ef5",
+ "s": "0x6dc7422c4897f446a3b9775e688ffcd21a7070a4b4e1fdbb9b676d97e7a49e10",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2851,7 +2851,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x5eb2ac10109074f5552bcd7dfca728860d7cfc7631b7a0dc9c12725e2bbbae08",
+ "lastblockhash": "0xd887114b3cad6bd08b4df188cda62eb9953c036c2f19a7696267e9aefb08c119",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -2896,16 +2896,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f114",
+ "balance": "0xffffffffffffe9e7e4",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "022-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6cb6698327d9835": {
+ "022-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_83e53423a2dd93fe": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2936,19 +2936,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0a4e536663a2fc69085f7840b69133fadb77d1e84afd3cefd4b76ca6407ea63f5a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78be986bb46235d7dace424c585d8160a7ffb0be6cf09844d5dc50cd6f14f9d9b4a39cb187d590d5b9fabc41efe31673bc001a070323221eae38ee9a767b892b94d595668db743b35fd6ceb24cb5fcbbb60fd7ba012f19a53389cc10a14781ef0cf8ebe955259e6fbb0b847169d6616c4e0dd41a0c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d43e78e392975e2508273a97b39ee52dfa7d0daa6bef48c460fd310610e53474a0a16b3a4a571e5195ef7804b6f84fcfa238977aba365b76afa65c3d9bd8f74370a051f2f35a1066da98366d1ae0f70861fa89df30d6ab4d0f859ac3cce427c25ef3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326840c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc080a055927481d511a61d08b3309de9287ef82a40a2b87bed2605ffbcfaad994340b0a0401e884cd033983f02c4af36b799209f1c6bb4f7673c3a4cd384d7576904bafec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
- "transactionsTrie": "0xa4e536663a2fc69085f7840b69133fadb77d1e84afd3cefd4b76ca6407ea63f5",
- "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
+ "stateRoot": "0xd43e78e392975e2508273a97b39ee52dfa7d0daa6bef48c460fd310610e53474",
+ "transactionsTrie": "0xa16b3a4a571e5195ef7804b6f84fcfa238977aba365b76afa65c3d9bd8f74370",
+ "receiptTrie": "0x51f2f35a1066da98366d1ae0f70861fa89df30d6ab4d0f859ac3cce427c25ef3",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326c0",
+ "gasUsed": "0x032684",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -2958,7 +2958,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x142f4ce5e202bb461e9f0318a8706ec4517fa3b76c0394413431ca6fd6d78e13"
+ "hash": "0xcbbfcccf71790e4fe962844819ac39ee5aebc6d84d4d37588cc495594babd653"
},
"blocknumber": "1",
"transactions": [
@@ -2971,11 +2971,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78be986bb46235d7dace424c585d8160a7ffb0be6cf09844d5dc50cd6f14f9d9b4a39cb187d590d5b9fabc41efe31673b",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f",
"accessList": [],
- "v": "0x01",
- "r": "0x70323221eae38ee9a767b892b94d595668db743b35fd6ceb24cb5fcbbb60fd7b",
- "s": "0x12f19a53389cc10a14781ef0cf8ebe955259e6fbb0b847169d6616c4e0dd41a0",
+ "v": "0x00",
+ "r": "0x55927481d511a61d08b3309de9287ef82a40a2b87bed2605ffbcfaad994340b0",
+ "s": "0x401e884cd033983f02c4af36b799209f1c6bb4f7673c3a4cd384d7576904bafe",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -2983,7 +2983,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x142f4ce5e202bb461e9f0318a8706ec4517fa3b76c0394413431ca6fd6d78e13",
+ "lastblockhash": "0xcbbfcccf71790e4fe962844819ac39ee5aebc6d84d4d37588cc495594babd653",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3028,16 +3028,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f0c0",
+ "balance": "0xffffffffffffe9f264",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "023-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62": {
+ "023-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b24f8997145435c": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3068,19 +3068,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa098410ef352d1f7a7b0b179afb2cc7edf0936ddb42561f66da818ef87193722c9a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef89d9a593cf16156d32a0998b48fdc0964fc8a63e4b87a6750c6e132089125bfd57105274821bbda7198cfe1b69ee49b4c001a0841bb1cf1945bb7346f1930527ddd4a0550ce9ad842f9b350c8119fdbab00fd2a05394dabb876b51f2d0533b67e28b4e6e3a33638bc01e576025a4f1c833f5af57c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45ba07c2dddac5f40b2219f1c94206c102b06692900b886114a3ac5bcc89c5d0f8c43a05d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b9241c6816af6388d1014cd4d7dd21662a6e3d47f96c0257bce642b70e8e375839a880864638669c6a709b414ab8bffcc001a0ca15826ab5ed6a9933fd78b03f789b1657ee2cbcd5c266aa8afbf776db95f402a040323e267039f7d1a2f7d11cf3792a0109521b9414f8026f08ac5edbaf345860c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea",
- "transactionsTrie": "0x98410ef352d1f7a7b0b179afb2cc7edf0936ddb42561f66da818ef87193722c9",
- "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683",
+ "stateRoot": "0xded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45b",
+ "transactionsTrie": "0x7c2dddac5f40b2219f1c94206c102b06692900b886114a3ac5bcc89c5d0f8c43",
+ "receiptTrie": "0x5d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6c",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326a8",
+ "gasUsed": "0x032534",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -3090,7 +3090,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xe195d53f91bdca3ed68e842c6cd7489c0b6959e405dcb731d7d6eba17c1c5448"
+ "hash": "0xecca0c69b89050ec6821285a73e1d60d3c3674ee18d2df33d3c53c437a27e097"
},
"blocknumber": "1",
"transactions": [
@@ -3103,11 +3103,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef89d9a593cf16156d32a0998b48fdc0964fc8a63e4b87a6750c6e132089125bfd57105274821bbda7198cfe1b69ee49b4",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b9241c6816af6388d1014cd4d7dd21662a6e3d47f96c0257bce642b70e8e375839a880864638669c6a709b414ab8bffc",
"accessList": [],
"v": "0x01",
- "r": "0x841bb1cf1945bb7346f1930527ddd4a0550ce9ad842f9b350c8119fdbab00fd2",
- "s": "0x5394dabb876b51f2d0533b67e28b4e6e3a33638bc01e576025a4f1c833f5af57",
+ "r": "0xca15826ab5ed6a9933fd78b03f789b1657ee2cbcd5c266aa8afbf776db95f402",
+ "s": "0x40323e267039f7d1a2f7d11cf3792a0109521b9414f8026f08ac5edbaf345860",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -3115,7 +3115,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xe195d53f91bdca3ed68e842c6cd7489c0b6959e405dcb731d7d6eba17c1c5448",
+ "lastblockhash": "0xecca0c69b89050ec6821285a73e1d60d3c3674ee18d2df33d3c53c437a27e097",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3160,16 +3160,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f168",
+ "balance": "0xffffffffffffe9fb94",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "024-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6": {
+ "024-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b754afb690c47e1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3200,19 +3200,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa005a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1a05db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591a04edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325c40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a075b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500ca022d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a0066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a071beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41fa02a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x05a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1",
- "transactionsTrie": "0x5db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591",
- "receiptTrie": "0x4edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858e",
+ "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4",
+ "transactionsTrie": "0x066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35",
+ "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0325c4",
+ "gasUsed": "0x03245c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -3222,7 +3222,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1"
+ "hash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a"
},
"blocknumber": "1",
"transactions": [
@@ -3235,11 +3235,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x01",
- "r": "0x75b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500c",
- "s": "0x22d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733",
+ "v": "0x00",
+ "r": "0x71beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41f",
+ "s": "0x2a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -3247,7 +3247,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1",
+ "lastblockhash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3292,16 +3292,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f7a4",
+ "balance": "0xffffffffffffea017c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "025-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd": {
+ "025-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_a0be66af9a97ea52": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3332,19 +3332,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a0fceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3ca00316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6",
- "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9",
- "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605",
+ "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283",
+ "transactionsTrie": "0xfceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281",
+ "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0320cc",
+ "gasUsed": "0x032318",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -3354,7 +3354,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c"
+ "hash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e"
},
"blocknumber": "1",
"transactions": [
@@ -3367,11 +3367,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x01",
- "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373",
- "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6",
+ "v": "0x00",
+ "r": "0xf5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3c",
+ "s": "0x0316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -3379,7 +3379,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c",
+ "lastblockhash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3424,16 +3424,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffea1a6c",
+ "balance": "0xffffffffffffea0a58",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "026-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c5e1490d672d026d": {
+ "026-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af669445747d2585": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3464,19 +3464,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a09c123e4f43d535e83fb5524eb9f8f9b15cdccbd78d073f4b9dbaea8e64b8738ca0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806942307f266e636553e94006d11423f2688945ff3bdf515859eba1005c1a7708d620a94d91a1c0c285f9584e75ec2f82ac080a0bad740f39e4a37f0d97369c491a8b400ba04dc6f59b470a602209c27435c9f5ba0504392910ea536b47ac7a32c2492ef3f617c6c5d4a8a10656742a664bdb05529c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a0dc767e0a8a916f1855dffa8a6269ad01d5face5490cae4657ff5b5864ee5f1dca092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a8a46b67dcba4e3aa66f9952be69e1ecbc24e21d42b1df2bfe1c8e28431c6221a3f1d09808042f5624e857710cb24fb69c080a0d83602a0880d4a65094b22792227cf6848651300e7ef63463afb4cb55fb85552a016222311e5b80b643b9b0a13e8acac14a734a535116b7fcd2ec7b473e45c5c2dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0",
- "transactionsTrie": "0x9c123e4f43d535e83fb5524eb9f8f9b15cdccbd78d073f4b9dbaea8e64b8738c",
- "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906",
+ "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34",
+ "transactionsTrie": "0xdc767e0a8a916f1855dffa8a6269ad01d5face5490cae4657ff5b5864ee5f1dc",
+ "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032828",
+ "gasUsed": "0x032834",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -3486,7 +3486,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x3cc5748cf9f3faa40de5a0daef5a9c17d2870658a7081a982252da4d235944c6"
+ "hash": "0x9c08c8139a3a49eef3e9bd0217bd08e36a3583c8b980cc3f9b151046036cf001"
},
"blocknumber": "1",
"transactions": [
@@ -3499,11 +3499,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806942307f266e636553e94006d11423f2688945ff3bdf515859eba1005c1a7708d620a94d91a1c0c285f9584e75ec2f82a",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a8a46b67dcba4e3aa66f9952be69e1ecbc24e21d42b1df2bfe1c8e28431c6221a3f1d09808042f5624e857710cb24fb69",
"accessList": [],
"v": "0x00",
- "r": "0xbad740f39e4a37f0d97369c491a8b400ba04dc6f59b470a602209c27435c9f5b",
- "s": "0x504392910ea536b47ac7a32c2492ef3f617c6c5d4a8a10656742a664bdb05529",
+ "r": "0xd83602a0880d4a65094b22792227cf6848651300e7ef63463afb4cb55fb85552",
+ "s": "0x16222311e5b80b643b9b0a13e8acac14a734a535116b7fcd2ec7b473e45c5c2d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -3511,7 +3511,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x3cc5748cf9f3faa40de5a0daef5a9c17d2870658a7081a982252da4d235944c6",
+ "lastblockhash": "0x9c08c8139a3a49eef3e9bd0217bd08e36a3583c8b980cc3f9b151046036cf001",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3556,16 +3556,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e6e8",
+ "balance": "0xffffffffffffe9e694",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "027-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_cae5d3491190b777": {
+ "027-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af8b75f664ed7d43": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3596,19 +3596,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a033e63d9f23cea6a5bf9ad371866475e8cfff580aef91876814b9f065c55510d4a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b981665ea5575dbe48f8cea22d4e3effc42cb66f967c7ca174c21f06a4a55740f61d8cde1bc6339c3f036e8d5176516fc080a0dcf9446bfc8d96cc748dcab47c9298ca84ae9e6cc617d30f72f6af8b218b53a1a04aad313d253a1a1ef4f308217f4caafc99cfaf98eee8a1ca07aa04fe0ad1ff53c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0a9eeb1b04f9338668d4d6042930fb62951446d5fe7b67796d7f1d960b9eec3e4a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556893acd46552b81cc9e5ff6ca03dad873588f2c61031781367cfea2a2be4ef3090035623338711b3cf7eff4b4524df742c001a06ebc2dcdecb28723dca8f5b6aeeedd1cefe9e86572dca08fcc72bcd9f35e05dba0592f09e687f9c8648ae29638a5a3b5de87f56221124789cc7d13db24729aa91ac0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98",
- "transactionsTrie": "0x33e63d9f23cea6a5bf9ad371866475e8cfff580aef91876814b9f065c55510d4",
- "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd",
+ "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea",
+ "transactionsTrie": "0xa9eeb1b04f9338668d4d6042930fb62951446d5fe7b67796d7f1d960b9eec3e4",
+ "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x03281c",
+ "gasUsed": "0x0326a8",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -3618,7 +3618,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x840d59f37fffd375dbd115ab62aa7f9305b8dc375df00baab93e4b2c79ecba76"
+ "hash": "0xd8f6b8b21e5311fcc1c99b52963084ffa5ecc92fac53a2b083e4f3b5de63ea14"
},
"blocknumber": "1",
"transactions": [
@@ -3631,11 +3631,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b981665ea5575dbe48f8cea22d4e3effc42cb66f967c7ca174c21f06a4a55740f61d8cde1bc6339c3f036e8d5176516f",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556893acd46552b81cc9e5ff6ca03dad873588f2c61031781367cfea2a2be4ef3090035623338711b3cf7eff4b4524df742",
"accessList": [],
- "v": "0x00",
- "r": "0xdcf9446bfc8d96cc748dcab47c9298ca84ae9e6cc617d30f72f6af8b218b53a1",
- "s": "0x4aad313d253a1a1ef4f308217f4caafc99cfaf98eee8a1ca07aa04fe0ad1ff53",
+ "v": "0x01",
+ "r": "0x6ebc2dcdecb28723dca8f5b6aeeedd1cefe9e86572dca08fcc72bcd9f35e05db",
+ "s": "0x592f09e687f9c8648ae29638a5a3b5de87f56221124789cc7d13db24729aa91a",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -3643,7 +3643,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x840d59f37fffd375dbd115ab62aa7f9305b8dc375df00baab93e4b2c79ecba76",
+ "lastblockhash": "0xd8f6b8b21e5311fcc1c99b52963084ffa5ecc92fac53a2b083e4f3b5de63ea14",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3688,16 +3688,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e73c",
+ "balance": "0xffffffffffffe9f168",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "028-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d0992bc0387790a4": {
+ "028-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6cb6698327d9835": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3728,19 +3728,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a02d3c00b7b6f30782dc5b38cdb0c274d6ab6146b32e6440c13ed5c5ac2909bc9ba0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a731aa7fbb00bc5c46074279f0123976c2a0c05ef3987bdc16fa64fbab1621dec82c66b4bfb117456068137391617e59c001a0ca0197799718f0d7420e5f7927f22003acb6e4229de8a8f6da2580fee49cb11da056676b40175009a8c069ea362e2f1f18fe20276851bd784f0a5d7cf71d3c5f04c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a03d43f624f48c1349027e94031005356ece1e40b1459988b4fe41b2fd042af890a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa38758fca85407078c0a7e5fd6d38b34340c809baa0e1fed9deaabb11aa503062acbbe23fcbe620a21b40a83bfa71b89c080a0a0abeba9143e17adc9cd5a12d68000eba14d9d683f89853f4fcd0e116f0ee17aa02fb0bd123da794416725d8169e29b1e453a2c6a541b3c67accd32da1cc7ce4b7c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98",
- "transactionsTrie": "0x2d3c00b7b6f30782dc5b38cdb0c274d6ab6146b32e6440c13ed5c5ac2909bc9b",
- "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd",
+ "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
+ "transactionsTrie": "0x3d43f624f48c1349027e94031005356ece1e40b1459988b4fe41b2fd042af890",
+ "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x03281c",
+ "gasUsed": "0x0326c0",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -3750,7 +3750,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x5a614c3058a95cb46146384f9d3e7e236778017db9f6fc6e3bd9984ce7a40b5d"
+ "hash": "0x5cf5be83f19e2c120fa75afe03c8e6dc5c4fe0c318d22d27d0c2d2fd254dee68"
},
"blocknumber": "1",
"transactions": [
@@ -3763,11 +3763,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a731aa7fbb00bc5c46074279f0123976c2a0c05ef3987bdc16fa64fbab1621dec82c66b4bfb117456068137391617e59",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa38758fca85407078c0a7e5fd6d38b34340c809baa0e1fed9deaabb11aa503062acbbe23fcbe620a21b40a83bfa71b89",
"accessList": [],
- "v": "0x01",
- "r": "0xca0197799718f0d7420e5f7927f22003acb6e4229de8a8f6da2580fee49cb11d",
- "s": "0x56676b40175009a8c069ea362e2f1f18fe20276851bd784f0a5d7cf71d3c5f04",
+ "v": "0x00",
+ "r": "0xa0abeba9143e17adc9cd5a12d68000eba14d9d683f89853f4fcd0e116f0ee17a",
+ "s": "0x2fb0bd123da794416725d8169e29b1e453a2c6a541b3c67accd32da1cc7ce4b7",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -3775,7 +3775,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x5a614c3058a95cb46146384f9d3e7e236778017db9f6fc6e3bd9984ce7a40b5d",
+ "lastblockhash": "0x5cf5be83f19e2c120fa75afe03c8e6dc5c4fe0c318d22d27d0c2d2fd254dee68",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3820,16 +3820,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e73c",
+ "balance": "0xffffffffffffe9f0c0",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "029-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d736268229bd87ec": {
+ "029-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3860,19 +3860,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0f5f88082c2e649ed962fb2a8df6e5f57d1103e11cc5aa1afad6a9982a2ac6019a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef884c7d4772baef968a6a407ac02cc1a813d67003e8f039c4d66f7757be0e5bd484e561550acf58b8a3199b2690e9809ac001a0fb8ea80064406e3deb07654550868fd9586f9fde14f5ba41df3a9a8f43cd71c4a065abe2c0d3921a18f2357bd507e4ccc1a17125b949339c3604bdfa12b4dec565c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0e78af4c18224a6188bf25628dd7a51a47f24f59ca2305d9acb071f2055585ec8a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556a256a681861974cdf6b116467044aa75c85b01076423a92c3335b93d10bf2fcb99b943a53adc1ab8feb6b475c4688948c080a06bf05e3e75e53f4286db33f2421a91d33a3ce5fb0a171ec361085576ad955c16a053384e9cd480afc3031854a546ef73a97f743e1779a457b35501f2e6e2b990a4c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98",
- "transactionsTrie": "0xf5f88082c2e649ed962fb2a8df6e5f57d1103e11cc5aa1afad6a9982a2ac6019",
- "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd",
+ "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea",
+ "transactionsTrie": "0xe78af4c18224a6188bf25628dd7a51a47f24f59ca2305d9acb071f2055585ec8",
+ "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x03281c",
+ "gasUsed": "0x0326a8",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -3882,7 +3882,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x42e7a7c09ffa35511a486af2a572c858fd7cc2182975a72180fb9d3bb4197b8d"
+ "hash": "0xa88ee0dfc69890e287c3f3d7f3f7e91a25b712ad8c547b9dff238450a90a57ab"
},
"blocknumber": "1",
"transactions": [
@@ -3895,11 +3895,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef884c7d4772baef968a6a407ac02cc1a813d67003e8f039c4d66f7757be0e5bd484e561550acf58b8a3199b2690e9809a",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556a256a681861974cdf6b116467044aa75c85b01076423a92c3335b93d10bf2fcb99b943a53adc1ab8feb6b475c4688948",
"accessList": [],
- "v": "0x01",
- "r": "0xfb8ea80064406e3deb07654550868fd9586f9fde14f5ba41df3a9a8f43cd71c4",
- "s": "0x65abe2c0d3921a18f2357bd507e4ccc1a17125b949339c3604bdfa12b4dec565",
+ "v": "0x00",
+ "r": "0x6bf05e3e75e53f4286db33f2421a91d33a3ce5fb0a171ec361085576ad955c16",
+ "s": "0x53384e9cd480afc3031854a546ef73a97f743e1779a457b35501f2e6e2b990a4",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -3907,7 +3907,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x42e7a7c09ffa35511a486af2a572c858fd7cc2182975a72180fb9d3bb4197b8d",
+ "lastblockhash": "0xa88ee0dfc69890e287c3f3d7f3f7e91a25b712ad8c547b9dff238450a90a57ab",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -3952,16 +3952,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e73c",
+ "balance": "0xffffffffffffe9f168",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "030-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_e68d7111a2364a49": {
+ "030-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -3992,19 +3992,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0db4428cdc02ad1603afaf1737d369177c648f4eb6523b163039b548fc46c8322a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548068f391ceb1bd34fe93e995f04fc78f8e715776ce6385936ab91a9ca88f3942cc37bd471c0180ed0ab6fc4f5e2d6f99dacc001a0cb3e503622f7a81e1d75967a93e307bb40a6ff987ac69c37147133f97134f8a6a02a2b35b7767af0323557d318c773e4719ded11e675b8793ff96fc83b9e738756c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa005a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1a05db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591a04edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325c40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a075b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500ca022d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
- "transactionsTrie": "0xdb4428cdc02ad1603afaf1737d369177c648f4eb6523b163039b548fc46c8322",
- "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
+ "stateRoot": "0x05a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1",
+ "transactionsTrie": "0x5db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591",
+ "receiptTrie": "0x4edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858e",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326c0",
+ "gasUsed": "0x0325c4",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4014,7 +4014,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xe12d11e52d07d2f9ba6586a17bae384b2f2770e7930172f0fec1f6c2de5a7709"
+ "hash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1"
},
"blocknumber": "1",
"transactions": [
@@ -4027,11 +4027,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548068f391ceb1bd34fe93e995f04fc78f8e715776ce6385936ab91a9ca88f3942cc37bd471c0180ed0ab6fc4f5e2d6f99dac",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x01",
- "r": "0xcb3e503622f7a81e1d75967a93e307bb40a6ff987ac69c37147133f97134f8a6",
- "s": "0x2a2b35b7767af0323557d318c773e4719ded11e675b8793ff96fc83b9e738756",
+ "r": "0x75b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500c",
+ "s": "0x22d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4039,7 +4039,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xe12d11e52d07d2f9ba6586a17bae384b2f2770e7930172f0fec1f6c2de5a7709",
+ "lastblockhash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4084,16 +4084,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f0c0",
+ "balance": "0xffffffffffffe9f7a4",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "031-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6": {
+ "031-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4124,19 +4124,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a0313c9b788fcaa0e7cf37cef629eac02320dfd2ed6811ab40f39865f612c33764a0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9940769c68153fe476f97be8841dd16ad8c8f52a8bd2e8a421bb8eccc3a77e705e3702fdf17f1bf27333d94e2d88ee85dc080a0c9ada62679e5ba02a861083b6325cfaf8bd8ec5405a94a4aad6eb0a5d72da710a01518ef83949babdbe0151bdc2937489de21b92e4f6233ad06714ecfd8d322b62c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0",
- "transactionsTrie": "0x313c9b788fcaa0e7cf37cef629eac02320dfd2ed6811ab40f39865f612c33764",
- "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906",
+ "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6",
+ "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9",
+ "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x032828",
+ "gasUsed": "0x0320cc",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4146,7 +4146,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xea8c8d5109f456633c924804348a52ba2f739a603b73c333c36299f86a8fc795"
+ "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c"
},
"blocknumber": "1",
"transactions": [
@@ -4159,11 +4159,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9940769c68153fe476f97be8841dd16ad8c8f52a8bd2e8a421bb8eccc3a77e705e3702fdf17f1bf27333d94e2d88ee85d",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x00",
- "r": "0xc9ada62679e5ba02a861083b6325cfaf8bd8ec5405a94a4aad6eb0a5d72da710",
- "s": "0x1518ef83949babdbe0151bdc2937489de21b92e4f6233ad06714ecfd8d322b62",
+ "v": "0x01",
+ "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373",
+ "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4171,7 +4171,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xea8c8d5109f456633c924804348a52ba2f739a603b73c333c36299f86a8fc795",
+ "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4216,16 +4216,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9e6e8",
+ "balance": "0xffffffffffffea1a6c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "032-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130": {
+ "032-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c5e1490d672d026d": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4256,19 +4256,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa084c23b2b6821c3d164304f26c2867332b319a74a28b4a4f958584c8572e38e40a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a4b831fd8adfa8bffcbfa0f486f40cdb65ada7dc7b26e6c745c0369b3a59c338df67edebc3fd7c14ff374be3f1f66735c001a08ecaa57e461f3841e384279290526c94065d243808552b82a0eeba07dec8b40ea009d3d3bc57d99b33e97a2957a8e227415a52ec03a95b0bd23ee59f6a3340fb6fc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a057f28c6df7f44e82f077d2938a5e1cc47e0792a402342a6ba6a098b3d8b8d341a092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7873033e038326e87ed3e1276fd140253fa08e9fc25fb2d9a98527fc22a2c9612fbeafdad446cbc7bcdbdcd780af2c16ac001a0f37cf93c89b3829e2986e16f053fea921478311eb3e6569a76915be6c21e1159a048df2f8978a59ccaee1758db430b78c3e8d5d069a59470cce9e442de0eb840fac0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea",
- "transactionsTrie": "0x84c23b2b6821c3d164304f26c2867332b319a74a28b4a4f958584c8572e38e40",
- "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683",
+ "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34",
+ "transactionsTrie": "0x57f28c6df7f44e82f077d2938a5e1cc47e0792a402342a6ba6a098b3d8b8d341",
+ "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326a8",
+ "gasUsed": "0x032834",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4278,7 +4278,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xc8eef4cd7a7aefdb602d9c0db08666bad7ed0890ad988a04189db0bf58688a79"
+ "hash": "0xd5bb990b05121d0fe10307d8ec8f5cac95c3b13353f6e542d892143722cc2cb8"
},
"blocknumber": "1",
"transactions": [
@@ -4291,11 +4291,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a4b831fd8adfa8bffcbfa0f486f40cdb65ada7dc7b26e6c745c0369b3a59c338df67edebc3fd7c14ff374be3f1f66735",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7873033e038326e87ed3e1276fd140253fa08e9fc25fb2d9a98527fc22a2c9612fbeafdad446cbc7bcdbdcd780af2c16a",
"accessList": [],
"v": "0x01",
- "r": "0x8ecaa57e461f3841e384279290526c94065d243808552b82a0eeba07dec8b40e",
- "s": "0x09d3d3bc57d99b33e97a2957a8e227415a52ec03a95b0bd23ee59f6a3340fb6f",
+ "r": "0xf37cf93c89b3829e2986e16f053fea921478311eb3e6569a76915be6c21e1159",
+ "s": "0x48df2f8978a59ccaee1758db430b78c3e8d5d069a59470cce9e442de0eb840fa",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4303,7 +4303,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xc8eef4cd7a7aefdb602d9c0db08666bad7ed0890ad988a04189db0bf58688a79",
+ "lastblockhash": "0xd5bb990b05121d0fe10307d8ec8f5cac95c3b13353f6e542d892143722cc2cb8",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4348,16 +4348,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f168",
+ "balance": "0xffffffffffffe9e694",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "033-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd": {
+ "033-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_cae5d3491190b777": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4388,19 +4388,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a033265160be7234cbac21eff8eef3385c85a88078521b560593348fdaf8c684eda0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480686031313e4108b347f185a1247c062be741e37376474c23812ba260a13436065507d429c9ea7a205b6eb069e49a70641c001a027e8547ab96a718e5754936ce9ec358b1ccca6de57cb4f370c58b209fb821ffba020c42598d87bd16493b2da2acd9ab845993c435a4850567c032ef065b17ed52ac0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0d38fd566039239bd104f88943f3bada9cfff76e4d3a5d406be66978d405c1002a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab059c60125debbbf29d041bac20fd853951b64b5f31bfe2fa825e18ff49a259953e734b3d57119ae66f7bd79de3027f6c001a03efcc8ddc2baca10773b20c3ebf8690d1c5e6e4225db402b48c9d1e139db59e7a046ce90989394e8385be02ffaff09f729bbff0262000a5d074b2e37f838bce594c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
- "transactionsTrie": "0x33265160be7234cbac21eff8eef3385c85a88078521b560593348fdaf8c684ed",
- "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
+ "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98",
+ "transactionsTrie": "0xd38fd566039239bd104f88943f3bada9cfff76e4d3a5d406be66978d405c1002",
+ "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326c0",
+ "gasUsed": "0x03281c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4410,7 +4410,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x244e390652cbf4e8fad021b99560d7e7ea259985826a8ba6e8327752500ebee8"
+ "hash": "0x4bf94ef7add0777b5aadd0f5207d34dd252da44b3820dba57de924be58d4df39"
},
"blocknumber": "1",
"transactions": [
@@ -4423,11 +4423,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480686031313e4108b347f185a1247c062be741e37376474c23812ba260a13436065507d429c9ea7a205b6eb069e49a70641",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab059c60125debbbf29d041bac20fd853951b64b5f31bfe2fa825e18ff49a259953e734b3d57119ae66f7bd79de3027f6",
"accessList": [],
"v": "0x01",
- "r": "0x27e8547ab96a718e5754936ce9ec358b1ccca6de57cb4f370c58b209fb821ffb",
- "s": "0x20c42598d87bd16493b2da2acd9ab845993c435a4850567c032ef065b17ed52a",
+ "r": "0x3efcc8ddc2baca10773b20c3ebf8690d1c5e6e4225db402b48c9d1e139db59e7",
+ "s": "0x46ce90989394e8385be02ffaff09f729bbff0262000a5d074b2e37f838bce594",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4435,7 +4435,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x244e390652cbf4e8fad021b99560d7e7ea259985826a8ba6e8327752500ebee8",
+ "lastblockhash": "0x4bf94ef7add0777b5aadd0f5207d34dd252da44b3820dba57de924be58d4df39",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4480,16 +4480,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f0c0",
+ "balance": "0xffffffffffffe9e73c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "034-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f7f44e1e864aa967": {
+ "034-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d0992bc0387790a4": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4520,19 +4520,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a04736d1f86eeb8422f7d8102498daba055b9a0d9c4cdaff334a25a2505e1e8851a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806807dce8223a17fd2702eb75a13333f5d3128639df8fc09881a68d464d5765a1a0d2f4628ea573eddb3d6cf4846a0b4ecc080a004bff879689a82b7b12070c7996b2d8710ff509d3c9396fb8c4b865f01f86f81a02fb711a50468f01f5def161f5daa40bf1c62bda3c93388178655d4a4dccd98cec0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a0fa5cbef006f8526c97aea2df1f6d7da6968f04db55c9121be3cd1a90b4401309a0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7987ea6df69bbe97c23e0dd948cf2d4490824ba7fea5af812721b2393354b0810a9dba2c231ea7ae30f26c412c7ea6e3ac001a00373cb4a98e39283abf022af09090498258b499a792ba82320d7aa6daf8ed3cfa06be1234fe690f65f4490f56675eaa086bc965e52fdc377778081d7343a2ef98dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1",
- "transactionsTrie": "0x4736d1f86eeb8422f7d8102498daba055b9a0d9c4cdaff334a25a2505e1e8851",
- "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030",
+ "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0",
+ "transactionsTrie": "0xfa5cbef006f8526c97aea2df1f6d7da6968f04db55c9121be3cd1a90b4401309",
+ "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0326b4",
+ "gasUsed": "0x032828",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4542,7 +4542,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x43d41ded6f6380d8116609693be537d92abad21aeeb6ea92a1995da5e651a5c9"
+ "hash": "0x54b43f1f9515d5c678272d86b75eef5e6307f9ff64921c29b71061820cdfc1c8"
},
"blocknumber": "1",
"transactions": [
@@ -4555,11 +4555,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806807dce8223a17fd2702eb75a13333f5d3128639df8fc09881a68d464d5765a1a0d2f4628ea573eddb3d6cf4846a0b4ec",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7987ea6df69bbe97c23e0dd948cf2d4490824ba7fea5af812721b2393354b0810a9dba2c231ea7ae30f26c412c7ea6e3a",
"accessList": [],
- "v": "0x00",
- "r": "0x04bff879689a82b7b12070c7996b2d8710ff509d3c9396fb8c4b865f01f86f81",
- "s": "0x2fb711a50468f01f5def161f5daa40bf1c62bda3c93388178655d4a4dccd98ce",
+ "v": "0x01",
+ "r": "0x0373cb4a98e39283abf022af09090498258b499a792ba82320d7aa6daf8ed3cf",
+ "s": "0x6be1234fe690f65f4490f56675eaa086bc965e52fdc377778081d7343a2ef98d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4567,7 +4567,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x43d41ded6f6380d8116609693be537d92abad21aeeb6ea92a1995da5e651a5c9",
+ "lastblockhash": "0x54b43f1f9515d5c678272d86b75eef5e6307f9ff64921c29b71061820cdfc1c8",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4612,16 +4612,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffe9f114",
+ "balance": "0xffffffffffffe9e6e8",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "035-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ffa6e97b97146517": {
+ "035-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d736268229bd87ec": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4652,19 +4652,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a040e7297fe073db243b4197e94b2bf9d5d46fcfbc301ac58536f6efb258c76c0aa0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655694425f5cf336685a6a4e806ad4601f4b0d3707a655718f968c57e225f0e4b8d5fd61878234f25ec59d090c07ea725cf4c001a08062bb6127236caf59a0babb1eb316cd9cf4db55126230550a38411c48773c43a0215ab9619175bf3a7e08debcecfc30d2cbb605e6120f68f6d8ae4a35cfdcaf73c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee",
- "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0",
- "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9",
+ "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98",
+ "transactionsTrie": "0x40e7297fe073db243b4197e94b2bf9d5d46fcfbc301ac58536f6efb258c76c0a",
+ "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0320d8",
+ "gasUsed": "0x03281c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4674,7 +4674,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526"
+ "hash": "0xc49da6439c1ab5458038c939ef7e98a6dc666a7bc0e8331fa9646a5866018de9"
},
"blocknumber": "1",
"transactions": [
@@ -4687,11 +4687,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655694425f5cf336685a6a4e806ad4601f4b0d3707a655718f968c57e225f0e4b8d5fd61878234f25ec59d090c07ea725cf4",
"accessList": [],
"v": "0x01",
- "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612",
- "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053",
+ "r": "0x8062bb6127236caf59a0babb1eb316cd9cf4db55126230550a38411c48773c43",
+ "s": "0x215ab9619175bf3a7e08debcecfc30d2cbb605e6120f68f6d8ae4a35cfdcaf73",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4699,7 +4699,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526",
+ "lastblockhash": "0xc49da6439c1ab5458038c939ef7e98a6dc666a7bc0e8331fa9646a5866018de9",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4744,16 +4744,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffea1a18",
+ "balance": "0xffffffffffffe9e73c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "036-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d": {
+ "036-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_e68d7111a2364a49": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4784,19 +4784,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447a004a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336a04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259a054fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0d55deb2710b6db8dad4542109d2281aa78d8ff1277c2a1758c5a0c053dbf0160a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a35c4f136a09a33c6437c26dc0c617ce6548a14bc4af7127690a411f5e1cde2f73157365212dbcea6432e0e7869cb006c001a079c75d58d4d2349d99b03f5f5255c9e1d780b2e7ab89ca44f01834df629e8e56a03351ebd9f15bbe07e5c7e6fe584ca3a1cae696edce769f53facea5fd2d93c256c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x0e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447",
- "transactionsTrie": "0x04a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336",
- "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad",
+ "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
+ "transactionsTrie": "0xd55deb2710b6db8dad4542109d2281aa78d8ff1277c2a1758c5a0c053dbf0160",
+ "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x02878e",
+ "gasUsed": "0x0326c0",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4806,7 +4806,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1"
+ "hash": "0x50583d3bc03056855aa0c5aaf9319714f0275572720e77f958f16561bc2cb98a"
},
"blocknumber": "1",
"transactions": [
@@ -4819,11 +4819,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a35c4f136a09a33c6437c26dc0c617ce6548a14bc4af7127690a411f5e1cde2f73157365212dbcea6432e0e7869cb006",
"accessList": [],
"v": "0x01",
- "r": "0x8761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259",
- "s": "0x54fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26",
+ "r": "0x79c75d58d4d2349d99b03f5f5255c9e1d780b2e7ab89ca44f01834df629e8e56",
+ "s": "0x3351ebd9f15bbe07e5c7e6fe584ca3a1cae696edce769f53facea5fd2d93c256",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4831,7 +4831,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1",
+ "lastblockhash": "0x50583d3bc03056855aa0c5aaf9319714f0275572720e77f958f16561bc2cb98a",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4858,10 +4858,12 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x02": "0x02",
- "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x05": "0x02"
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -4874,16 +4876,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee4b1e",
+ "balance": "0xffffffffffffe9f0c0",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "037-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db": {
+ "037-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -4914,19 +4916,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddaba0cd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07a036608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7ddc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0346a6bf7dfed70ffa6d239b4d2696980b0dd97e25c23c6a814837ca7db1f3323a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a1fcd37a924af9ec04143b44853c26f6b0738f6e15a3e0755057e7d5460406c7e148adb0e2d608982140d0ae42fe0b3bc001a051ac07e80d47d7a0508522bbebd2d6e4ad87c9af609cc8516e3a08abee75b31ba0626af8217c88c1bfe8c561bd0c903558ea5ccdd573d8a93421b812618a1cf0f3c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x39e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddab",
- "transactionsTrie": "0xcd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0",
- "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec",
+ "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98",
+ "transactionsTrie": "0x346a6bf7dfed70ffa6d239b4d2696980b0dd97e25c23c6a814837ca7db1f3323",
+ "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c56",
+ "gasUsed": "0x03281c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -4936,7 +4938,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e"
+ "hash": "0x13b13ac0b4631ac904348b9c5b9f6b890f146fdf85dd2fca929bf18a40f3311e"
},
"blocknumber": "1",
"transactions": [
@@ -4949,11 +4951,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a1fcd37a924af9ec04143b44853c26f6b0738f6e15a3e0755057e7d5460406c7e148adb0e2d608982140d0ae42fe0b3b",
"accessList": [],
- "v": "0x00",
- "r": "0x138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07",
- "s": "0x36608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7dd",
+ "v": "0x01",
+ "r": "0x51ac07e80d47d7a0508522bbebd2d6e4ad87c9af609cc8516e3a08abee75b31b",
+ "s": "0x626af8217c88c1bfe8c561bd0c903558ea5ccdd573d8a93421b812618a1cf0f3",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -4961,7 +4963,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e",
+ "lastblockhash": "0x13b13ac0b4631ac904348b9c5b9f6b890f146fdf85dd2fca929bf18a40f3311e",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -4988,10 +4990,12 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5004,16 +5008,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee29a6",
+ "balance": "0xffffffffffffe9e73c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "038-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2": {
+ "038-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5044,19 +5048,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15a059b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41ea00137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288f60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0f91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350ca05ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caac0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0cf3c30883f24409433d84b1ad29f2d48c0311e028e3c1d82f43a4c8132e0ae52a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa71f21ca51b443ad35bb8a26d274223a690d88d9629927dc80b0856093e08a372820248df5b8a43b6d98fd52a62fa376c001a08bbe8ab59a85fbd6782fa557398efe11d29e3249c567548ebfdaeba270a5e289a046ffe185ae723b2dc22f573fd205ccab2af35adac585763f2b0ba9e6ab1af76dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x5c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15",
- "transactionsTrie": "0x59b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41e",
- "receiptTrie": "0x0137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71",
+ "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea",
+ "transactionsTrie": "0xcf3c30883f24409433d84b1ad29f2d48c0311e028e3c1d82f43a4c8132e0ae52",
+ "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0288f6",
+ "gasUsed": "0x0326a8",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5066,7 +5070,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e"
+ "hash": "0x2a2029d6421b2e4324e1fc4d61a247911b99ab54df8996cdc9e01951c7256cc5"
},
"blocknumber": "1",
"transactions": [
@@ -5079,11 +5083,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa71f21ca51b443ad35bb8a26d274223a690d88d9629927dc80b0856093e08a372820248df5b8a43b6d98fd52a62fa376",
"accessList": [],
"v": "0x01",
- "r": "0xf91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350c",
- "s": "0x5ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caa",
+ "r": "0x8bbe8ab59a85fbd6782fa557398efe11d29e3249c567548ebfdaeba270a5e289",
+ "s": "0x46ffe185ae723b2dc22f573fd205ccab2af35adac585763f2b0ba9e6ab1af76d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5091,7 +5095,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e",
+ "lastblockhash": "0x2a2029d6421b2e4324e1fc4d61a247911b99ab54df8996cdc9e01951c7256cc5",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -5118,10 +5122,12 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
- "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5134,16 +5140,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee4146",
+ "balance": "0xffffffffffffe9f168",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "039-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899": {
+ "039-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5174,19 +5180,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa099288a8e66788ee2bd86170ded90475494a6cd68d3090b50eba288e0944d9152a0c877a5cab973d3df9d8529a1ffab304f9adb6abfa2828f2745fac067091fa5c2a09898e4ea9bbc664488836d4ad0d3e82bd01b55dba40db65968e5c4e66c1ffae8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028afa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa491b284078832f22a229c6fb9c60670bbbcc13142ad50a9f53e3f2fa32e673416ce59d1dd05921cbb37f91bec352ad6c080a08f2d0d903f9a69f0f7faf08dc7f891727577d47be1af7039d7caa68cd4edd376a079682da2d7a619433763d3575d05b714599de53ddef69c7e7707f5df419c3873c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0ae6668667f2a291f276f76e934a6b38b3fe6860681b66127b53ad25e284e4c6fa0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a06eb61083a9a45c07c765d52a17bfe79e8eda8eeb1395838988da31987c397b53a011196b13a0b7796abd006d318e4fac1c052c6c43c43fcb6153322e6fab29e6a1c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x99288a8e66788ee2bd86170ded90475494a6cd68d3090b50eba288e0944d9152",
- "transactionsTrie": "0xc877a5cab973d3df9d8529a1ffab304f9adb6abfa2828f2745fac067091fa5c2",
- "receiptTrie": "0x9898e4ea9bbc664488836d4ad0d3e82bd01b55dba40db65968e5c4e66c1ffae8",
+ "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1",
+ "transactionsTrie": "0xae6668667f2a291f276f76e934a6b38b3fe6860681b66127b53ad25e284e4c6f",
+ "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028afa",
+ "gasUsed": "0x0326c0",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5196,7 +5202,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xc82068294890a58754aef359af3198d6420939717677a7c0408ec6d182557db0"
+ "hash": "0x261968fe4934c84015b5fbf24dcb17759a3d69af186dda281b30edc486485829"
},
"blocknumber": "1",
"transactions": [
@@ -5209,11 +5215,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa491b284078832f22a229c6fb9c60670bbbcc13142ad50a9f53e3f2fa32e673416ce59d1dd05921cbb37f91bec352ad6",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
- "v": "0x00",
- "r": "0x8f2d0d903f9a69f0f7faf08dc7f891727577d47be1af7039d7caa68cd4edd376",
- "s": "0x79682da2d7a619433763d3575d05b714599de53ddef69c7e7707f5df419c3873",
+ "v": "0x01",
+ "r": "0x6eb61083a9a45c07c765d52a17bfe79e8eda8eeb1395838988da31987c397b53",
+ "s": "0x11196b13a0b7796abd006d318e4fac1c052c6c43c43fcb6153322e6fab29e6a1",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5221,7 +5227,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xc82068294890a58754aef359af3198d6420939717677a7c0408ec6d182557db0",
+ "lastblockhash": "0x261968fe4934c84015b5fbf24dcb17759a3d69af186dda281b30edc486485829",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -5248,10 +5254,12 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
- "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5264,16 +5272,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee332a",
+ "balance": "0xffffffffffffe9f0c0",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "040-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_26b753dec0560daa": {
+ "040-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f7f44e1e864aa967": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5304,19 +5312,3941 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ca39de0553a61927b69f919b268e0e018a7092217095951202e800f756f1fffa047df3d451616073f0c46b135f19c2cd8d2d26d1daa6746c82b7aec1233a106c5a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef83bdb1c6f172d8e30a58533d4df96d9133b7ee293ae76777d60454cb35ef28f08634a794dc098baa22499347ab9a00dbc001a04e4d3b0553b0ce6f210dd5b7729abd38c8bfb0a79e2dd75ade44837a02f8b699a028a151bb6e7fb9e7c0960dca0ff2433fa92f30af940e3a3162d2ddf36c0d8317c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a085221ef646bdac0ca9852709b72edd4bba98e3c13ce05fe0d4288b707d16f026a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7809adfa8b078b0921cdb8696ca017a0cc2d5337109016f36a766886eade28d32f205311ff5def247c3ddba91896fae97c080a008dd3fdefb25997c98d9e3343a574cb5ad5f0ad6fb7c38a627bd5b9b1a4f2c2da079516fec030f0d31058ca022daa456180b8111902da996e33378b52440990c30c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x7ca39de0553a61927b69f919b268e0e018a7092217095951202e800f756f1fff",
- "transactionsTrie": "0x47df3d451616073f0c46b135f19c2cd8d2d26d1daa6746c82b7aec1233a106c5",
- "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7",
+ "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1",
+ "transactionsTrie": "0x85221ef646bdac0ca9852709b72edd4bba98e3c13ce05fe0d4288b707d16f026",
+ "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x01ef8e",
+ "gasUsed": "0x0326b4",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x5a317d7cbae32b4204671d6c02266cbfddf35ad4a8a148fee57f0b33e2b9391d"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7809adfa8b078b0921cdb8696ca017a0cc2d5337109016f36a766886eade28d32f205311ff5def247c3ddba91896fae97",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x08dd3fdefb25997c98d9e3343a574cb5ad5f0ad6fb7c38a627bd5b9b1a4f2c2d",
+ "s": "0x79516fec030f0d31058ca022daa456180b8111902da996e33378b52440990c30",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x5a317d7cbae32b4204671d6c02266cbfddf35ad4a8a148fee57f0b33e2b9391d",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffe9f114",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "041-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ffa6e97b97146517": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee",
+ "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0",
+ "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x0320d8",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612",
+ "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea1a18",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "042-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_05c1f3685f3393f0": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0daa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5aa064694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579a0cffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303248c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a056cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c219f8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xdaa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5a",
+ "transactionsTrie": "0x64694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579",
+ "receiptTrie": "0xcffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x03248c",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x56cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c21",
+ "s": "0x8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea002c",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "043-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_177b58dc7a46b08f": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9da0b835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30a04bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0a043eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x9ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9d",
+ "transactionsTrie": "0xb835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30",
+ "receiptTrie": "0x4bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x032480",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0",
+ "s": "0x43eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea0080",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "044-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_2b76dc9e3abf42f3": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a04a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0a04b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283",
+ "transactionsTrie": "0x4a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9",
+ "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x032318",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x9195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0",
+ "s": "0x4b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea0a58",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "045-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_395cf6d697d1a743": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a049a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055ba04e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07bc0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4",
+ "transactionsTrie": "0x49a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911",
+ "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x03245c",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x5e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055b",
+ "s": "0x4e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07b",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea017c",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "046-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_585454b31673dd62": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524aa0282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094a096b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303230c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a061f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eba043a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xd46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524a",
+ "transactionsTrie": "0x282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094",
+ "receiptTrie": "0x96b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dcc",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x03230c",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x61f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eb",
+ "s": "0x43a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea0aac",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "047-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_a0be66af9a97ea52": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a0fceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3ca00316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283",
+ "transactionsTrie": "0xfceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281",
+ "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x032318",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xf5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3c",
+ "s": "0x0316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea0a58",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "048-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_02e696ada7d4631d": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea0342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a065f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11a01fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee",
+ "transactionsTrie": "0x342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370",
+ "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x0320d8",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x65f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11",
+ "s": "0x1fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea1a18",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "049-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_0cf79b17cb5f4ea2": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a",
+ "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360",
+ "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x032240",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02",
+ "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea1040",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "050-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3208425794224c3f": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e",
+ "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f",
+ "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x03224c",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af",
+ "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea0fec",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "051-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3ac8dc31e9aa6a70": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321",
+ "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c",
+ "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x03221c",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307",
+ "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea113c",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "052-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_c3d4322ec17fe7cd": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6",
+ "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9",
+ "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x0320cc",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373",
+ "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea1a6c",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "053-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_ffa6e97b97146517": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee",
+ "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0",
+ "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x0320d8",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612",
+ "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x00": "0x01",
+ "0x01": "0x1000",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
+ "0x03": "0x40",
+ "0x04": "0x1000",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffea1a18",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "054-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447a004a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336a04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259a054fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x0e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447",
+ "transactionsTrie": "0x04a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336",
+ "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x02878e",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x8761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259",
+ "s": "0x54fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x02": "0x02",
+ "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x05": "0x02"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee4b1e",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "055-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_05c1f3685f3393f0": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081cedcc5e151455b8cfaa3e3620332315ed1c9dccb4d9a5c624f2e9fabd8bf4ba0dfc81dd9f75d5269388597a628f4bbfa3b42025a7c7e350ace3592e6dd3763eda00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0b39ade89f9fa653e72b6bd7be08c068c0d69f81421abfb6ff9379714de9407d8a07e42b1e5ded69fc2589e6111e180ae8c2abf81ea948678cf6dcbb5261da2cb8dc0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x81cedcc5e151455b8cfaa3e3620332315ed1c9dccb4d9a5c624f2e9fabd8bf4b",
+ "transactionsTrie": "0xdfc81dd9f75d5269388597a628f4bbfa3b42025a7c7e350ace3592e6dd3763ed",
+ "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028b42",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x48a9a2f705205705d42ee9e38fa00aa1a66a9a77e9c87721ff785d33cb62955a"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xb39ade89f9fa653e72b6bd7be08c068c0d69f81421abfb6ff9379714de9407d8",
+ "s": "0x7e42b1e5ded69fc2589e6111e180ae8c2abf81ea948678cf6dcbb5261da2cb8d",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x48a9a2f705205705d42ee9e38fa00aa1a66a9a77e9c87721ff785d33cb62955a",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
+ "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee3132",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "056-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddaba0cd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07a036608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7ddc0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x39e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddab",
+ "transactionsTrie": "0xcd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0",
+ "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028c56",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07",
+ "s": "0x36608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7dd",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
+ "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee29a6",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "057-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15a059b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41ea00137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288f60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0f91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350ca05ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caac0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x5c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15",
+ "transactionsTrie": "0x59b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41e",
+ "receiptTrie": "0x0137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x0288f6",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0xf91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350c",
+ "s": "0x5ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caa",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee4146",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "058-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_177b58dc7a46b08f": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fcaba0e9e6c6b52ed02c1bc8b48f0cb3ea4a8c85627b43d74b5564f4ba9dcda9a0706b4ad700b9656ba5e879723ec7697ccc6a6dc07752d3c8a7bebf77de1ef05ca0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f5e4887e5e1f4ce69f241964fb510c9f8a226194ff37c2e06d42ef73900b5412a010fe7a90af6877e317f0b53edc461c33b88a364dd8b9ec5772a728de61b82a25c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xfcaba0e9e6c6b52ed02c1bc8b48f0cb3ea4a8c85627b43d74b5564f4ba9dcda9",
+ "transactionsTrie": "0x706b4ad700b9656ba5e879723ec7697ccc6a6dc07752d3c8a7bebf77de1ef05c",
+ "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028b36",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xe413da3b48c57fd7809244a84bd66db71393e69c97a8ab2b17f1bce08dd21d12"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xf5e4887e5e1f4ce69f241964fb510c9f8a226194ff37c2e06d42ef73900b5412",
+ "s": "0x10fe7a90af6877e317f0b53edc461c33b88a364dd8b9ec5772a728de61b82a25",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xe413da3b48c57fd7809244a84bd66db71393e69c97a8ab2b17f1bce08dd21d12",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee3186",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "059-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06def9d0ad1414d78220d49fd0dbd96ef29b953c4c3b492c0553d61b00b7e8a39a001c1479a842ee20dba3b2ecc393e48b3118cf90de0351765e50ebec46df61b63a036595bb2d5b0ca60db87f44279ba5dbab354471ad2aa0c19c6641019850ee5bbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028aee0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f1465569779b8337f00de6aeac881256198bd2db2fe95bc3127ad9e6440d9e4d1e785b455f55fcfe80a3434dc40f8e6df85be88c001a04667e403b9f9349babcf1c601584e9d5c0f8fe60b61516ef356dd8264afd71eca03f3b808f116b1fe59cc94b16f13a565759a1c64ac46f5390cd025c970d4abab8c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x6def9d0ad1414d78220d49fd0dbd96ef29b953c4c3b492c0553d61b00b7e8a39",
+ "transactionsTrie": "0x01c1479a842ee20dba3b2ecc393e48b3118cf90de0351765e50ebec46df61b63",
+ "receiptTrie": "0x36595bb2d5b0ca60db87f44279ba5dbab354471ad2aa0c19c6641019850ee5bb",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028aee",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xf5af3659b136ee9673b4cba23488807bb07d754e8a9eee2df49296d39ea40506"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f1465569779b8337f00de6aeac881256198bd2db2fe95bc3127ad9e6440d9e4d1e785b455f55fcfe80a3434dc40f8e6df85be88",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x4667e403b9f9349babcf1c601584e9d5c0f8fe60b61516ef356dd8264afd71ec",
+ "s": "0x3f3b808f116b1fe59cc94b16f13a565759a1c64ac46f5390cd025c970d4abab8",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xf5af3659b136ee9673b4cba23488807bb07d754e8a9eee2df49296d39ea40506",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
+ "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee337e",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "060-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_26b753dec0560daa": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e31b37e7efd166a38a47e3cd2a0cc4309474cb222d48465f070e2799f9a01ad7a0327368ccb307f9315b3d6bde7cf9ede667c1cca396904096d5dc8c7bb81c3a1ca0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655690f53a4837bbde6ab0838fef0c0be5339ab03a78342c221cf6b2d6e465d01a3d47585a808c9d8d25dee885007deeb107c080a07b78f776e7375a5215e878f719cb37622be31a5407bfaa4542f9ffec24081a58a01ee0c5d868149b759a039cb2fff53ea2b70b41c61a16d2e887ef13b9e916f9ddc0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xe31b37e7efd166a38a47e3cd2a0cc4309474cb222d48465f070e2799f9a01ad7",
+ "transactionsTrie": "0x327368ccb307f9315b3d6bde7cf9ede667c1cca396904096d5dc8c7bb81c3a1c",
+ "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x01ef8e",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x88c8ee45373cb8fdd58e45bb0ef7582bdc6c9b92d398681d8ebeeb8059166e9b"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655690f53a4837bbde6ab0838fef0c0be5339ab03a78342c221cf6b2d6e465d01a3d47585a808c9d8d25dee885007deeb107",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x7b78f776e7375a5215e878f719cb37622be31a5407bfaa4542f9ffec24081a58",
+ "s": "0x1ee0c5d868149b759a039cb2fff53ea2b70b41c61a16d2e887ef13b9e916f9dd",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x88c8ee45373cb8fdd58e45bb0ef7582bdc6c9b92d398681d8ebeeb8059166e9b",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xfffffffffffff2731e",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "061-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_2b76dc9e3abf42f3": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09429e7ac59df28029f8a855b7d5828ff6427b9cbee52b021fa5fa9cecc27d5bea0f1cb0c9347f73759e25870b0e148e1a5c4380fcd8ccdd03432aa6cbe524a46d2a0c3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0afba91e74b2d8fde6720a6f8b4307fd13161c62f1ecad8a907833c582cb1208ea06398c153f32aa26863ae921c58dc6e8f9e7481fe399a385b235334ffab1e0267c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x9429e7ac59df28029f8a855b7d5828ff6427b9cbee52b021fa5fa9cecc27d5be",
+ "transactionsTrie": "0xf1cb0c9347f73759e25870b0e148e1a5c4380fcd8ccdd03432aa6cbe524a46d2",
+ "receiptTrie": "0xc3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104ad",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x0289ce",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa781a00cd99309c850001db11794c6c953434ebf9c766381f68558d7e64c10b2"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0xafba91e74b2d8fde6720a6f8b4307fd13161c62f1ecad8a907833c582cb1208e",
+ "s": "0x6398c153f32aa26863ae921c58dc6e8f9e7481fe399a385b235334ffab1e0267",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xa781a00cd99309c850001db11794c6c953434ebf9c766381f68558d7e64c10b2",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x02": "0x01",
+ "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x05": "0x01"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee3b5e",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "062-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_31ebd010e6098750": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e4259768907803f444f41968be7cd43ce94a09e851e4464eb51712463320017a031ed5b16801e076fd201ad17bf100b3796b25848cc7b4a758297128eab3e9736a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b9b65c2ebc89e669cf19e82fb178f0d1e9c958edbebe9ead62e97e95e2dcdc4972729fb9661f0cae3532b71b2664a8c1c001a0b86399bbb8f067bd98625e32eae7f4a66ba16d099422e5a32ec5b1387ecc631ca0616335ec00e6632fc44c192dcd15f38ccd3432e8465f04e895964daf645a9e6fc0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x6e4259768907803f444f41968be7cd43ce94a09e851e4464eb51712463320017",
+ "transactionsTrie": "0x31ed5b16801e076fd201ad17bf100b3796b25848cc7b4a758297128eab3e9736",
+ "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028c86",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x39eecb29e875267c94781ff204e49aa8beb955c965511e0404459cc4cf48223e"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b9b65c2ebc89e669cf19e82fb178f0d1e9c958edbebe9ead62e97e95e2dcdc4972729fb9661f0cae3532b71b2664a8c1",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0xb86399bbb8f067bd98625e32eae7f4a66ba16d099422e5a32ec5b1387ecc631c",
+ "s": "0x616335ec00e6632fc44c192dcd15f38ccd3432e8465f04e895964daf645a9e6f",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x39eecb29e875267c94781ff204e49aa8beb955c965511e0404459cc4cf48223e",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee2856",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "063-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3208425794224c3f": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bca0205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803a0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a07b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91a02702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x6e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bc",
+ "transactionsTrie": "0x205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803",
+ "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028902",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x7b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91",
+ "s": "0x2702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
+ "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee40f2",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "064-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9aa02d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a063ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629a00656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38fc0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xdda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9a",
+ "transactionsTrie": "0x2d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980",
+ "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x01ef8e",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x63ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629",
+ "s": "0x0656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38f",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xfffffffffffff2731e",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "065-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ba8c269b2a19e3608f3fd4d09f23cb33c06ca68d03b3c4a07a918f7c024aecada01d32d6ddadd17afd9016df4ed386d5960b3132964e575b909398229cf0b540e3a06ac4d31628e4cf708bb4bcdb44386bb20f55b55797f7b99afd3f3bfd0c1d2cbdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c4a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b08a5afbb1717334e08e05576b07bff58e8851d8cfd9ea71da1ab4233ad4217cffabd669dfa89c3ebf4c44f91694a2f4c080a051a8ecabbd377c69896eefaf1dd4dfe9fa9c9530d93ae9a680cf5bda84ee627ba0731da720547d59f22378597d07dcf4f7ca90a80a91e749b6bc95175004a72ba7c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xba8c269b2a19e3608f3fd4d09f23cb33c06ca68d03b3c4a07a918f7c024aecad",
+ "transactionsTrie": "0x1d32d6ddadd17afd9016df4ed386d5960b3132964e575b909398229cf0b540e3",
+ "receiptTrie": "0x6ac4d31628e4cf708bb4bcdb44386bb20f55b55797f7b99afd3f3bfd0c1d2cbd",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028c4a",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xda1bb2777e9f329fdb55082922f142ae55bfa0d1ffe0ca298f1c040a7b46ec01"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b08a5afbb1717334e08e05576b07bff58e8851d8cfd9ea71da1ab4233ad4217cffabd669dfa89c3ebf4c44f91694a2f4",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0x51a8ecabbd377c69896eefaf1dd4dfe9fa9c9530d93ae9a680cf5bda84ee627b",
+ "s": "0x731da720547d59f22378597d07dcf4f7ca90a80a91e749b6bc95175004a72ba7",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xda1bb2777e9f329fdb55082922f142ae55bfa0d1ffe0ca298f1c040a7b46ec01",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee29fa",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "066-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_395cf6d697d1a743": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0299c5b530200b11d96ef2e2ecabf80996751ad88becd73c8e67419ca60acce1ba026137c7a0a83c44a82cbbba0cd3a3426a781c171631723143d511240c5ca5602a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a00edc24906c0d89c890a0cf653889e60575cc48709b3227d3d8bf9c57a8d32c42a01cf77a2f5521b8ed5c0a73a053b700df4d5c016582ed1b8a860513aa0149a6b9c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x299c5b530200b11d96ef2e2ecabf80996751ad88becd73c8e67419ca60acce1b",
+ "transactionsTrie": "0x26137c7a0a83c44a82cbbba0cd3a3426a781c171631723143d511240c5ca5602",
+ "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028b12",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x74e52ba457f703d775a4ab85909ca078c04f95377230044767e836ab70e005e0"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0x0edc24906c0d89c890a0cf653889e60575cc48709b3227d3d8bf9c57a8d32c42",
+ "s": "0x1cf77a2f5521b8ed5c0a73a053b700df4d5c016582ed1b8a860513aa0149a6b9",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x74e52ba457f703d775a4ab85909ca078c04f95377230044767e836ab70e005e0",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
+ "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee3282",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "067-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdda040fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0d59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711a044695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x22029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdd",
+ "transactionsTrie": "0x40fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36",
+ "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x0288d2",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0xd59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711",
+ "s": "0x44695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
+ "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee4242",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "068-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07e4d76ac2b0df15645c3571bc7e7f52eeb67931608821360c7ad00841cdeb843a022e3736e7714f6520883f48744fe62b864a0198b546b7fde17d8225771051068a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0690559bfd8e58f5d144588a1a959c93aba58607777e09893f088e404eb2dc47c0269ed8e47c1be79ea07ae726abd921a8c001a0c69dba776ee7fc0ff07d22a68e8f77c8c4f7a695718d46492f46a850fe230ac8a052f857bee68427dd67b549d740d256b27c58000781c2b7094e1fb5d59df074a5c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x7e4d76ac2b0df15645c3571bc7e7f52eeb67931608821360c7ad00841cdeb843",
+ "transactionsTrie": "0x22e3736e7714f6520883f48744fe62b864a0198b546b7fde17d8225771051068",
+ "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x01efb2",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x7efe244e361cce42aec862a1fc202dcf43c59e2aa6d683871fb736a4be996808"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0690559bfd8e58f5d144588a1a959c93aba58607777e09893f088e404eb2dc47c0269ed8e47c1be79ea07ae726abd921a8",
+ "accessList": [],
+ "v": "0x01",
+ "r": "0xc69dba776ee7fc0ff07d22a68e8f77c8c4f7a695718d46492f46a850fe230ac8",
+ "s": "0x52f857bee68427dd67b549d740d256b27c58000781c2b7094e1fb5d59df074a5",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0x7efe244e361cce42aec862a1fc202dcf43c59e2aa6d683871fb736a4be996808",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xfffffffffffff27222",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "069-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06241a15c2149162920c03d1fa9437a584b091e0cef0c7886b94c359410c0bcb8a0e3163457bd43bb4bf5bd15effc030781b0e413b8029057ad42857d61b412238ca08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068d72dc4eec977090f452b412a6b0a3cdced2ea6b622ebb6e289c7e05d85cc715b93eca244123c84a60b3ecbf33373903c080a0af068027110a9a1b3a0edbc32d0f5f03df92826848631eb0ee5d267e09a93973a003e93ae2f5ee3fcb798537a2bcff0513c4730f14ae889dcf5848d63af12c1542c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x6241a15c2149162920c03d1fa9437a584b091e0cef0c7886b94c359410c0bcb8",
+ "transactionsTrie": "0xe3163457bd43bb4bf5bd15effc030781b0e413b8029057ad42857d61b412238c",
+ "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028caa",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xc202486b5aaf3f2f775caeb216a4d5e642e54069b68dff0aed40c47f4d4d0310"
+ },
+ "blocknumber": "1",
+ "transactions": [
+ {
+ "type": "0x02",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "maxPriorityFeePerGas": "0x00",
+ "maxFeePerGas": "0x07",
+ "gasLimit": "0x0f4240",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068d72dc4eec977090f452b412a6b0a3cdced2ea6b622ebb6e289c7e05d85cc715b93eca244123c84a60b3ecbf33373903",
+ "accessList": [],
+ "v": "0x00",
+ "r": "0xaf068027110a9a1b3a0edbc32d0f5f03df92826848631eb0ee5d267e09a93973",
+ "s": "0x03e93ae2f5ee3fcb798537a2bcff0513c4730f14ae889dcf5848d63af12c1542",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
+ ],
+ "lastblockhash": "0xc202486b5aaf3f2f775caeb216a4d5e642e54069b68dff0aed40c47f4d4d0310",
+ "pre": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {}
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {}
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "postState": {
+ "0x0000000000000000000000000000000000000100": {
+ "nonce": "0x00",
+ "balance": "0x01000000000000000000",
+ "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
+ "storage": {
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ }
+ },
+ "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
+ "nonce": "0x01",
+ "balance": "0x00",
+ "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
+ "storage": {
+ "0x0c": "0x0c"
+ }
+ },
+ "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
+ "nonce": "0x01",
+ "balance": "0xffffffffffffee275a",
+ "code": "0x",
+ "storage": {}
+ }
+ },
+ "sealEngine": "NoProof"
+ },
+ "070-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7": {
+ "_info": {
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
+ "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
+ "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
+ },
+ "network": "Cancun",
+ "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
+ "genesisBlockHeader": {
+ "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x0000000000000000000000000000000000000000",
+ "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x00",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x00",
+ "extraData": "0x00",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56"
+ },
+ "blocks": [
+ {
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9a08d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0fa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1a013b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729c0c0",
+ "blockHeader": {
+ "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0xf11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9",
+ "transactionsTrie": "0x8d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0f",
+ "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x028b12",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5326,7 +9256,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x0080469e05930d50f3099afcc6062d95659e08ed92cd0b9e984c8daeaad38a6b"
+ "hash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93"
},
"blocknumber": "1",
"transactions": [
@@ -5339,11 +9269,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef83bdb1c6f172d8e30a58533d4df96d9133b7ee293ae76777d60454cb35ef28f08634a794dc098baa22499347ab9a00db",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
- "v": "0x01",
- "r": "0x4e4d3b0553b0ce6f210dd5b7729abd38c8bfb0a79e2dd75ade44837a02f8b699",
- "s": "0x28a151bb6e7fb9e7c0960dca0ff2433fa92f30af940e3a3162d2ddf36c0d8317",
+ "v": "0x00",
+ "r": "0xf544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1",
+ "s": "0x13b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5351,7 +9281,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x0080469e05930d50f3099afcc6062d95659e08ed92cd0b9e984c8daeaad38a6b",
+ "lastblockhash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -5378,8 +9308,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5"
+ "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x02": "0x01",
+ "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x05": "0x01"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5392,16 +9324,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xfffffffffffff2731e",
+ "balance": "0xffffffffffffee3282",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "041-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_31ebd010e6098750": {
+ "071-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_420f2a187ce77035": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5432,19 +9364,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05cc18365cae8b88097a2722db2a410ec6fe0efdcd7745c07c048b5ab0f5f2c9aa016e366da44ee70919f94af4fba55fec79c21429b6a9a06da898265fbb4ee561ca0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069418eb9a7cf2fa71125962f6662afeac10a7f1bbe26365995b13f6840946da49f79c7dfdd80b5b8a50bf44758cd2a96dc080a077bca430e29f42ee9fcf1bd0bb97c0cbd8aa51ab3d742a52225b54a10daecf59a005a3ff3f93541e45ee480e9561a3b5d258a4b794ceb886283c60feb42d7b29dcc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa056164955e64cd598a56f6fdf5963af909fe75c843b88177a591ccfedec7be414a03e4c33039985eb4cd95f351f90afbf4debb2c72837827bf11b671b48889288a4a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0699c282db3a79a9ec1553306515e6a71dc43df1ddbd1dbd9d5b71f3c1798ef482f5e1fd84500b0e47c82f72a189ecd526c080a061e86dce798f049f3daa21f7121bceb8fbefe76ae92ac372cf77e84fdc97ca70a02d3166503ca948988089c8337198ddc63f92bfd9930c718494550f90e1bd4291c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x5cc18365cae8b88097a2722db2a410ec6fe0efdcd7745c07c048b5ab0f5f2c9a",
- "transactionsTrie": "0x16e366da44ee70919f94af4fba55fec79c21429b6a9a06da898265fbb4ee561c",
- "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6",
+ "stateRoot": "0x56164955e64cd598a56f6fdf5963af909fe75c843b88177a591ccfedec7be414",
+ "transactionsTrie": "0x3e4c33039985eb4cd95f351f90afbf4debb2c72837827bf11b671b48889288a4",
+ "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c86",
+ "gasUsed": "0x028b36",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5454,7 +9386,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xbefcca172421fb5887ba7d576c54419b9b2f7518bf5e88389dd31409e31d9c62"
+ "hash": "0x4eee5677efbb90149fb01702b062eec73f36d16cf950e2ee93e96ec499a11664"
},
"blocknumber": "1",
"transactions": [
@@ -5467,11 +9399,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069418eb9a7cf2fa71125962f6662afeac10a7f1bbe26365995b13f6840946da49f79c7dfdd80b5b8a50bf44758cd2a96d",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0699c282db3a79a9ec1553306515e6a71dc43df1ddbd1dbd9d5b71f3c1798ef482f5e1fd84500b0e47c82f72a189ecd526",
"accessList": [],
"v": "0x00",
- "r": "0x77bca430e29f42ee9fcf1bd0bb97c0cbd8aa51ab3d742a52225b54a10daecf59",
- "s": "0x05a3ff3f93541e45ee480e9561a3b5d258a4b794ceb886283c60feb42d7b29dc",
+ "r": "0x61e86dce798f049f3daa21f7121bceb8fbefe76ae92ac372cf77e84fdc97ca70",
+ "s": "0x2d3166503ca948988089c8337198ddc63f92bfd9930c718494550f90e1bd4291",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5479,7 +9411,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xbefcca172421fb5887ba7d576c54419b9b2f7518bf5e88389dd31409e31d9c62",
+ "lastblockhash": "0x4eee5677efbb90149fb01702b062eec73f36d16cf950e2ee93e96ec499a11664",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -5506,10 +9438,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
- "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x02",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x02"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5522,16 +9454,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee2856",
+ "balance": "0xffffffffffffee3186",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "042-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3208425794224c3f": {
+ "072-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5562,19 +9494,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bca0205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803a0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a07b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91a02702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aae4765ea23fd258c9029e07b3a595ea46d696a4e078f103ab53e47740efb427a0a0e8d19a40519a4f277d0f4d4b7962b52451e385473436a3ad5914c92491736ca00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa7de1e32bb336b85e42ff5028167042188317299333f091dd88675e84a550577bfa564b2f57cd2498e2acf875e0aaa40c080a0e838bc6da93976ed68fc58ec34849bdba4354e6da426878704c0c1b3ba9c5c5ca07ea0ef8fb9bf87cdb0ad50de6cef1036b6a7cdbbfbe4d5a4578b22eac52e3f0fc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x6e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bc",
- "transactionsTrie": "0x205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803",
- "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a",
+ "stateRoot": "0xaae4765ea23fd258c9029e07b3a595ea46d696a4e078f103ab53e47740efb427",
+ "transactionsTrie": "0xa0e8d19a40519a4f277d0f4d4b7962b52451e385473436a3ad5914c92491736c",
+ "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028902",
+ "gasUsed": "0x028b42",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5584,7 +9516,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9"
+ "hash": "0x16073147d8938eb28e4cd85ebf8d2bfa5fd40ed95c2a212c65d4cd2eeebd8347"
},
"blocknumber": "1",
"transactions": [
@@ -5597,11 +9529,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa7de1e32bb336b85e42ff5028167042188317299333f091dd88675e84a550577bfa564b2f57cd2498e2acf875e0aaa40",
"accessList": [],
- "v": "0x01",
- "r": "0x7b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91",
- "s": "0x2702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8",
+ "v": "0x00",
+ "r": "0xe838bc6da93976ed68fc58ec34849bdba4354e6da426878704c0c1b3ba9c5c5c",
+ "s": "0x7ea0ef8fb9bf87cdb0ad50de6cef1036b6a7cdbbfbe4d5a4578b22eac52e3f0f",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5609,7 +9541,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9",
+ "lastblockhash": "0x16073147d8938eb28e4cd85ebf8d2bfa5fd40ed95c2a212c65d4cd2eeebd8347",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -5636,10 +9568,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
- "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x02": "0x01",
+ "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x05": "0x01"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5652,16 +9584,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee40f2",
+ "balance": "0xffffffffffffee3132",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "043-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8": {
+ "073-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5692,19 +9624,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9aa02d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a063ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629a00656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38fc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7a09d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0a2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aaa020cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xdda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9a",
- "transactionsTrie": "0x2d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980",
- "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7",
+ "stateRoot": "0x78d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7",
+ "transactionsTrie": "0x9d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63",
+ "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x01ef8e",
+ "gasUsed": "0x028c86",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5714,7 +9646,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b"
+ "hash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263"
},
"blocknumber": "1",
"transactions": [
@@ -5727,11 +9659,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
"v": "0x01",
- "r": "0x63ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629",
- "s": "0x0656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38f",
+ "r": "0xa2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aa",
+ "s": "0x20cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5739,7 +9671,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b",
+ "lastblockhash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -5767,7 +9699,9 @@
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
"0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0"
+ "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
+ "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5780,16 +9714,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xfffffffffffff2731e",
+ "balance": "0xffffffffffffee2856",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "044-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6": {
+ "074-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_585454b31673dd62": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5820,19 +9754,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0692bb601a989053cad1f851fd98ba01bc6afc7c87f11d4fc2283af7e9d242458a01135f23b1017406399e3a232f6d305578d7e81011a890c95f7e965496d328319a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c981b26a6f4606710d329c8977ba35d907358aa9a4cc288ff6e4be5f251cab25118f206b22d030b6c2aa82444d1accc73cc001a0e4c7d1f35c41466d04ecb67f27e34fca0a34133fd161532be2336908cbd32b5aa060f26c309a100b0bc5d9ff09f57e1da7829afc0de175bf7e2ddecba3a5399fa8c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08992a363366498252008e0a40a192808c63f3189584701084b1446bcd2ffa883a0052c9d9f520ab6ab07860f7febf09202053dba23a6cbbef0f78a15a4a7b6c697a0749032247246bcdf2492dea7e7ef5b1105456aff8ad398d97bc96f6fc940b88ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ee4a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0077feb8e62d60659f7cf3e1c36536812e6218a3db1cc00c45fc3b2b19a5e560fa05ecfbc251e54d486a7c24ad00828f0a2c598ec458b2843d8c5bd8b6cb9579d14c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x692bb601a989053cad1f851fd98ba01bc6afc7c87f11d4fc2283af7e9d242458",
- "transactionsTrie": "0x1135f23b1017406399e3a232f6d305578d7e81011a890c95f7e965496d328319",
- "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec",
+ "stateRoot": "0x8992a363366498252008e0a40a192808c63f3189584701084b1446bcd2ffa883",
+ "transactionsTrie": "0x052c9d9f520ab6ab07860f7febf09202053dba23a6cbbef0f78a15a4a7b6c697",
+ "receiptTrie": "0x749032247246bcdf2492dea7e7ef5b1105456aff8ad398d97bc96f6fc940b88a",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c56",
+ "gasUsed": "0x01ee4a",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5842,7 +9776,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x1574846a13001633d478f189a63612a8dbb6ac2c43e2b1c116332fef2a1d48d6"
+ "hash": "0x531806dc481358b4241cba942a7e7a7125cbb813b86f2b2b09a7539cff8373c7"
},
"blocknumber": "1",
"transactions": [
@@ -5855,11 +9789,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c981b26a6f4606710d329c8977ba35d907358aa9a4cc288ff6e4be5f251cab25118f206b22d030b6c2aa82444d1accc73c",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
- "v": "0x01",
- "r": "0xe4c7d1f35c41466d04ecb67f27e34fca0a34133fd161532be2336908cbd32b5a",
- "s": "0x60f26c309a100b0bc5d9ff09f57e1da7829afc0de175bf7e2ddecba3a5399fa8",
+ "v": "0x00",
+ "r": "0x077feb8e62d60659f7cf3e1c36536812e6218a3db1cc00c45fc3b2b19a5e560f",
+ "s": "0x5ecfbc251e54d486a7c24ad00828f0a2c598ec458b2843d8c5bd8b6cb9579d14",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5867,7 +9801,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x1574846a13001633d478f189a63612a8dbb6ac2c43e2b1c116332fef2a1d48d6",
+ "lastblockhash": "0x531806dc481358b4241cba942a7e7a7125cbb813b86f2b2b09a7539cff8373c7",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -5894,10 +9828,8 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
- "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
+ "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -5910,16 +9842,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee29a6",
+ "balance": "0xfffffffffffff27bfa",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "045-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70": {
+ "075-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -5950,19 +9882,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdda040fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0d59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711a044695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0074375b4e26cb4890811c8636d0b2089d16b8245bc87947284d72833bf12fdf8a09245dc33b6e0a0c509f1b5bdf5c19bd155f8cac6073b6d0145d08b27de9920e7a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab0ac600174134691bf9d91fee448b4d58c127356567da1c456b9c38468909d4effe6b7faa11177e1f96ee5d2834df001c001a0a86d998ae0119a44401fa600566292d72a11f152a1191ab72d3cf3a6ca9fb1f6a07169941cc11fd5f2d59d4f0c2e502284963004b431ca9d7a6795ae6d7b2d6f63c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x22029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdd",
- "transactionsTrie": "0x40fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36",
- "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9",
+ "stateRoot": "0x074375b4e26cb4890811c8636d0b2089d16b8245bc87947284d72833bf12fdf8",
+ "transactionsTrie": "0x9245dc33b6e0a0c509f1b5bdf5c19bd155f8cac6073b6d0145d08b27de9920e7",
+ "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0288d2",
+ "gasUsed": "0x028c86",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -5972,7 +9904,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2"
+ "hash": "0xb8bfdd892d2a24d678e3fcb28f49b561fe995ef60dc0e59843621f9394055b92"
},
"blocknumber": "1",
"transactions": [
@@ -5985,11 +9917,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab0ac600174134691bf9d91fee448b4d58c127356567da1c456b9c38468909d4effe6b7faa11177e1f96ee5d2834df001",
"accessList": [],
"v": "0x01",
- "r": "0xd59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711",
- "s": "0x44695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1",
+ "r": "0xa86d998ae0119a44401fa600566292d72a11f152a1191ab72d3cf3a6ca9fb1f6",
+ "s": "0x7169941cc11fd5f2d59d4f0c2e502284963004b431ca9d7a6795ae6d7b2d6f63",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -5997,7 +9929,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2",
+ "lastblockhash": "0xb8bfdd892d2a24d678e3fcb28f49b561fe995ef60dc0e59843621f9394055b92",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6024,9 +9956,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
"0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
- "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
"0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
}
},
@@ -6040,16 +9972,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee4242",
+ "balance": "0xffffffffffffee2856",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "046-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12": {
+ "076-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6080,19 +10012,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0468e57b88b3fb989ca8833e2226949576d4dd9ad844fcb53322c4b182abe6f25a0c0ffe6a49e8f0cb18a75c29ec80824e5bc16f1905698046f5f936803a382aa9ca0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c987e0d60304667f4f331765a966bd70a196805dd852362d3cc163b8e675d1c504a88a6e3dcc5a766a4f1fbfdb98ea45ecc080a0346847cf63701b3b615645a136e625833946627e1eeb29bcf7ff7b60171f983da05138ab6b939e37acdcc2afe23079bab2b66902f4e03c4cac04aada5a6fa563f6c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda0571eb623c63bf49bc742f8b50b57b4fa7c1a4813d5de5c77c82932caffb01d32a07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068e3069b19e6e71aed9b7dc8fbba13e4217d91cfc59be47cfaa7d09ef626242517541992c0f76091ddabf271682cc7c2cc001a0f8b90b4c2fdf0672d13117c0776b52d30e44b838cac9ba6292a51711f9e565aba030b06f921d772eeb002ce651a2802bb91498bdf15f32152e01e07f5f003ecae3c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x468e57b88b3fb989ca8833e2226949576d4dd9ad844fcb53322c4b182abe6f25",
- "transactionsTrie": "0xc0ffe6a49e8f0cb18a75c29ec80824e5bc16f1905698046f5f936803a382aa9c",
- "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed",
+ "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed",
+ "transactionsTrie": "0x571eb623c63bf49bc742f8b50b57b4fa7c1a4813d5de5c77c82932caffb01d32",
+ "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x01efbe",
+ "gasUsed": "0x028b06",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -6102,7 +10034,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xa7482f4556bbd68e8bf340a577438fab71f3b6db5b210feee04fe85fdf775713"
+ "hash": "0xe3b737fb9f47f82488e0f504ccd93357e9793b0a6974a525c7b14c111f1e6364"
},
"blocknumber": "1",
"transactions": [
@@ -6115,11 +10047,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c987e0d60304667f4f331765a966bd70a196805dd852362d3cc163b8e675d1c504a88a6e3dcc5a766a4f1fbfdb98ea45ec",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068e3069b19e6e71aed9b7dc8fbba13e4217d91cfc59be47cfaa7d09ef626242517541992c0f76091ddabf271682cc7c2c",
"accessList": [],
- "v": "0x00",
- "r": "0x346847cf63701b3b615645a136e625833946627e1eeb29bcf7ff7b60171f983d",
- "s": "0x5138ab6b939e37acdcc2afe23079bab2b66902f4e03c4cac04aada5a6fa563f6",
+ "v": "0x01",
+ "r": "0xf8b90b4c2fdf0672d13117c0776b52d30e44b838cac9ba6292a51711f9e565ab",
+ "s": "0x30b06f921d772eeb002ce651a2802bb91498bdf15f32152e01e07f5f003ecae3",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -6127,7 +10059,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xa7482f4556bbd68e8bf340a577438fab71f3b6db5b210feee04fe85fdf775713",
+ "lastblockhash": "0xe3b737fb9f47f82488e0f504ccd93357e9793b0a6974a525c7b14c111f1e6364",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6154,8 +10086,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x01",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x01"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -6168,16 +10102,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xfffffffffffff271ce",
+ "balance": "0xffffffffffffee32d6",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "047-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2": {
+ "077-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b24f8997145435c": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6208,19 +10142,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa027100c6d7fa80d66574c8d32d23cd36703b65eba1e151a00defa9cf6c8c3191aa0f7e2660492b68050e4fbc7869faddcc1cd73e06a75bc4049300aaa9d43573175a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9813889b6303c421a9c60a8163e7f31162e4d43e5594fda9b91fd34f98a9483169b959f24741d09b88e9ec9298f19de5dc080a0d5875297d6a840dc57c45d74b9c621b435a8950231f1494dd65a11f0f71eee00a015c0192d61dbdc08b947bc25574d79f5ec9512d2b2e7bd1efec7c7f4fee77a78c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d4500d589b4a3386466a6e31628740ee86715f70574c017f3c605be622ef87da0317df4d41c72f0fd1de094501a96b9a4f17aa29295efcec532438d09e6616687a03db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556afc13cef6ed41f7abe142d32d7b5354e5664bd4b6d52080460dd404dc2cb26269c24826d2bcd0152d0b55ee0a9e90289c080a0d6c26c4fc98d7c6e3a628b9d8fadee4865627839329aed7a0d5ee6b70659aec8a03f930d8b4fcce01b53c707a1e5e0d57444e7d7914102d331e77c081aae0f5a11c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x27100c6d7fa80d66574c8d32d23cd36703b65eba1e151a00defa9cf6c8c3191a",
- "transactionsTrie": "0xf7e2660492b68050e4fbc7869faddcc1cd73e06a75bc4049300aaa9d43573175",
- "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117",
+ "stateRoot": "0x9d4500d589b4a3386466a6e31628740ee86715f70574c017f3c605be622ef87d",
+ "transactionsTrie": "0x317df4d41c72f0fd1de094501a96b9a4f17aa29295efcec532438d09e6616687",
+ "receiptTrie": "0x3db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028cb6",
+ "gasUsed": "0x0289b6",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -6230,7 +10164,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x6c57cafbd9e5c5afc4afbd88d94c4cc961f641d3bcae1f13a93eb140980432b3"
+ "hash": "0x1bb9da2a79f1238ee9cbd040f8516b9062b33436b881717b2780a655f1506ad9"
},
"blocknumber": "1",
"transactions": [
@@ -6243,11 +10177,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9813889b6303c421a9c60a8163e7f31162e4d43e5594fda9b91fd34f98a9483169b959f24741d09b88e9ec9298f19de5d",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556afc13cef6ed41f7abe142d32d7b5354e5664bd4b6d52080460dd404dc2cb26269c24826d2bcd0152d0b55ee0a9e90289",
"accessList": [],
"v": "0x00",
- "r": "0xd5875297d6a840dc57c45d74b9c621b435a8950231f1494dd65a11f0f71eee00",
- "s": "0x15c0192d61dbdc08b947bc25574d79f5ec9512d2b2e7bd1efec7c7f4fee77a78",
+ "r": "0xd6c26c4fc98d7c6e3a628b9d8fadee4865627839329aed7a0d5ee6b70659aec8",
+ "s": "0x3f930d8b4fcce01b53c707a1e5e0d57444e7d7914102d331e77c081aae0f5a11",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -6255,7 +10189,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x6c57cafbd9e5c5afc4afbd88d94c4cc961f641d3bcae1f13a93eb140980432b3",
+ "lastblockhash": "0x1bb9da2a79f1238ee9cbd040f8516b9062b33436b881717b2780a655f1506ad9",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6282,10 +10216,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
- "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x02": "0x01",
+ "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x05": "0x01"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -6298,16 +10232,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee2706",
+ "balance": "0xffffffffffffee3c06",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "048-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7": {
+ "078-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6338,13 +10272,13 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9a08d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0fa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1a013b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bda0ad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3aa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0ff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbba02957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xf11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9",
- "transactionsTrie": "0x8d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0f",
+ "stateRoot": "0x1a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bd",
+ "transactionsTrie": "0xad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3a",
"receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
@@ -6360,7 +10294,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93"
+ "hash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271"
},
"blocknumber": "1",
"transactions": [
@@ -6373,11 +10307,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
"v": "0x00",
- "r": "0xf544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1",
- "s": "0x13b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729",
+ "r": "0xff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbb",
+ "s": "0x2957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -6385,7 +10319,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93",
+ "lastblockhash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6413,9 +10347,9 @@
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
"0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x02": "0x01",
+ "0x02": "0x02",
"0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x05": "0x01"
+ "0x05": "0x02"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -6435,9 +10369,9 @@
},
"sealEngine": "NoProof"
},
- "049-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_420f2a187ce77035": {
+ "079-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_a0be66af9a97ea52": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6468,19 +10402,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f7b6a8bcc121e766e4a7e80afc09f1017f5694e04faad215069bc5ea1921b678a074ffb69baf1127a66dad629b01077b7d4c2e67cb4541bbcfe3c3209d713b7a47a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9aa421ef5eb79b0e642339a0edd408faed044978319b307f5230eb4f6b787602e29cd9246b905aa34077c802bc1087be0c080a0e04b006cb6bdc0ed9f457600453540491c1a3b67401795db0405d16f5f7f514ba017b3b6c829ee1bb7f8bc1542eb3d3fef20958d3ed2cce72a9b3a947ce62862d6c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02828205630590b438ba8bd8f09f2aa414d17c354577d1793c87952594d02e4d3a0aae8148356f17ee14d26d0dd97585d0cdd3a5bb29fde552099a23514a2fc4367a0c3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0c6de0a5b4d1b3a61b6cae300c7c8838853711435a62fdea81a1321e0335dcdbba02666f15a2c26f68a2eefdbd3d1aad5b4e01935aa3de6a741d76f77a0362bc6b0c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xf7b6a8bcc121e766e4a7e80afc09f1017f5694e04faad215069bc5ea1921b678",
- "transactionsTrie": "0x74ffb69baf1127a66dad629b01077b7d4c2e67cb4541bbcfe3c3209d713b7a47",
- "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "stateRoot": "0x2828205630590b438ba8bd8f09f2aa414d17c354577d1793c87952594d02e4d3",
+ "transactionsTrie": "0xaae8148356f17ee14d26d0dd97585d0cdd3a5bb29fde552099a23514a2fc4367",
+ "receiptTrie": "0xc3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104ad",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b42",
+ "gasUsed": "0x0289ce",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -6490,7 +10424,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xecac92d3f16905bd67d3425882f02bb72f96c2492192815794ad65aed8c3ba27"
+ "hash": "0x8fb29652119b3ac323190cb26007400f7b004e326f5c16d83b99091143ad5d8c"
},
"blocknumber": "1",
"transactions": [
@@ -6503,11 +10437,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9aa421ef5eb79b0e642339a0edd408faed044978319b307f5230eb4f6b787602e29cd9246b905aa34077c802bc1087be0",
+ "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
- "v": "0x00",
- "r": "0xe04b006cb6bdc0ed9f457600453540491c1a3b67401795db0405d16f5f7f514b",
- "s": "0x17b3b6c829ee1bb7f8bc1542eb3d3fef20958d3ed2cce72a9b3a947ce62862d6",
+ "v": "0x01",
+ "r": "0xc6de0a5b4d1b3a61b6cae300c7c8838853711435a62fdea81a1321e0335dcdbb",
+ "s": "0x2666f15a2c26f68a2eefdbd3d1aad5b4e01935aa3de6a741d76f77a0362bc6b0",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -6515,7 +10449,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xecac92d3f16905bd67d3425882f02bb72f96c2492192815794ad65aed8c3ba27",
+ "lastblockhash": "0x8fb29652119b3ac323190cb26007400f7b004e326f5c16d83b99091143ad5d8c",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6542,9 +10476,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
+ "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
"0x02": "0x02",
- "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
+ "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637",
"0x05": "0x02"
}
},
@@ -6558,16 +10492,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3132",
+ "balance": "0xffffffffffffee3b5e",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "050-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44": {
+ "080-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af669445747d2585": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6598,19 +10532,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10a025decf2481d75b33c3df3a9c97ece8d88e2bdc07c3bb3365b98b44b84fafb3dba00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b3352fb4d0b82179ccba8f8cd2969f93e67f9ee926607cb374cff85e22c578ee94cf738d332e1b2cc2feb908690c1b03c080a017c92413ea06bd3a118ac741ef709240765db2a11327eea4ec05e11a846498e2a001d601f80306732c8c71ca99e6aa994f65dfe7b742567647a7ff53fa724991a4c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa024bdc5bc7dba0d025d999c9c1907d4410a6c143a04d9f04b0da073d9cc71342ba08c48982825d75a341c3d039e721802dd6d0e69453ebf1ed029d6ad3291669df8a08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa88d68fe3ad0d09b07f4605b1364c8d4804bf7096dae003d821cc01c3b7d35c6d1fdae14e2db3c05e1cdcea7c7b7f262c001a00701c49658a38d7c49cecaf3fa86dad653181ad60aa1adbdd7340596998ca0bfa04464656ebceb017add91468367326936f895b7ccb08f193383d0e2213885fc2ec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x07e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10",
- "transactionsTrie": "0x25decf2481d75b33c3df3a9c97ece8d88e2bdc07c3bb3365b98b44b84fafb3db",
- "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "stateRoot": "0x24bdc5bc7dba0d025d999c9c1907d4410a6c143a04d9f04b0da073d9cc71342b",
+ "transactionsTrie": "0x8c48982825d75a341c3d039e721802dd6d0e69453ebf1ed029d6ad3291669df8",
+ "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b42",
+ "gasUsed": "0x028caa",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -6620,7 +10554,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x60d13de7978f1545288eaf4dac0a3d7cdca59ffe5f67747a6b20d2fe9b8c4f61"
+ "hash": "0x994ed7ceba5d066dbf2140e5216ce2729e057991ff3a33e02f729f8f48b57ab1"
},
"blocknumber": "1",
"transactions": [
@@ -6633,11 +10567,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b3352fb4d0b82179ccba8f8cd2969f93e67f9ee926607cb374cff85e22c578ee94cf738d332e1b2cc2feb908690c1b03",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa88d68fe3ad0d09b07f4605b1364c8d4804bf7096dae003d821cc01c3b7d35c6d1fdae14e2db3c05e1cdcea7c7b7f262",
"accessList": [],
- "v": "0x00",
- "r": "0x17c92413ea06bd3a118ac741ef709240765db2a11327eea4ec05e11a846498e2",
- "s": "0x01d601f80306732c8c71ca99e6aa994f65dfe7b742567647a7ff53fa724991a4",
+ "v": "0x01",
+ "r": "0x0701c49658a38d7c49cecaf3fa86dad653181ad60aa1adbdd7340596998ca0bf",
+ "s": "0x4464656ebceb017add91468367326936f895b7ccb08f193383d0e2213885fc2e",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -6645,7 +10579,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x60d13de7978f1545288eaf4dac0a3d7cdca59ffe5f67747a6b20d2fe9b8c4f61",
+ "lastblockhash": "0x994ed7ceba5d066dbf2140e5216ce2729e057991ff3a33e02f729f8f48b57ab1",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6672,10 +10606,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x02": "0x01",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x05": "0x01"
+ "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
+ "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -6688,16 +10622,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3132",
+ "balance": "0xffffffffffffee275a",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "051-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da": {
+ "081-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6728,19 +10662,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7a09d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0a2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aaa020cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00b7f49d0808e7f4029fd8fbc7a9cf2c91d845b38493b2eafc08e2b883d49815fa02b66f305353250ed55ba87736150eb4db06c9ba6cc256a74573227f0a4284139a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556af08cbca9deec336f2a56ca0b202995830f238fc3cb2ecdbdc0bbb6419e3e60507e823ff7dcbd17394cea55bc514716cc001a053b395e2240df6cac69c67fcbbf1a84c7cfcb7bb4f9773fc124b898660d3b4ffa013156ba473c2f73efeaea8fa83c22ab33af1e0c1501eff697c4d81d6951d8002c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x78d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7",
- "transactionsTrie": "0x9d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63",
- "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6",
+ "stateRoot": "0x0b7f49d0808e7f4029fd8fbc7a9cf2c91d845b38493b2eafc08e2b883d49815f",
+ "transactionsTrie": "0x2b66f305353250ed55ba87736150eb4db06c9ba6cc256a74573227f0a4284139",
+ "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c86",
+ "gasUsed": "0x028b36",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -6750,7 +10684,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263"
+ "hash": "0xdef46302cfa328ea05599585e878144bf4ff422e307fdc88a519a4b932c42937"
},
"blocknumber": "1",
"transactions": [
@@ -6763,11 +10697,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556af08cbca9deec336f2a56ca0b202995830f238fc3cb2ecdbdc0bbb6419e3e60507e823ff7dcbd17394cea55bc514716c",
"accessList": [],
"v": "0x01",
- "r": "0xa2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aa",
- "s": "0x20cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3",
+ "r": "0x53b395e2240df6cac69c67fcbbf1a84c7cfcb7bb4f9773fc124b898660d3b4ff",
+ "s": "0x13156ba473c2f73efeaea8fa83c22ab33af1e0c1501eff697c4d81d6951d8002",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -6775,7 +10709,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263",
+ "lastblockhash": "0xdef46302cfa328ea05599585e878144bf4ff422e307fdc88a519a4b932c42937",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6802,10 +10736,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x02": "0x02",
+ "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x05": "0x02"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -6818,16 +10752,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee2856",
+ "balance": "0xffffffffffffee3186",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "052-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a": {
+ "082-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6858,19 +10792,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00f3b85c697eaee96d0827927ad3a55df33adfdcd9853f75ca6c6624f501f6be3a0f55c1664b469d0b46740caf7267894d480569c45b50aa195862533884ad29c25a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca782af93a59a4978439a9a05cf6324e0e558c68b114f590589255bffe9ea2c0917a6ff6a7cd2e317f26f18b07802e9379ac001a0f12890dac4605451cc47201df1836e7868c1fe0177e2fc00e12c94cb319ae86aa074c4958c3992ba2e0cb80d0a7ba8075e4238086ece1ec445211af18656405f56c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0adce67a36931544ed896b583bafb3e872054ffdf8c6d0d29f5cb8e0ddc554b5aa0f5252d35e5c09f0f1733e3f59628b0104ff2c8f3d009ce3307a5dd5d84fa88d7a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a861a2aef7aa82db033bfa125b9f756afecaf1db28384925d5007bcf7dff1a53b72bdf522610303075aeecab41685d720c080a0ac4f85f8ffec48fb8cd4304a0db3bdb5bbf90a82a585325744d0a80512d9e064a05a913cb5dff943b5cba667f91523174f62f7d49c59399890703cb8e8e61f5bfbc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x0f3b85c697eaee96d0827927ad3a55df33adfdcd9853f75ca6c6624f501f6be3",
- "transactionsTrie": "0xf55c1664b469d0b46740caf7267894d480569c45b50aa195862533884ad29c25",
- "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6",
+ "stateRoot": "0xadce67a36931544ed896b583bafb3e872054ffdf8c6d0d29f5cb8e0ddc554b5a",
+ "transactionsTrie": "0xf5252d35e5c09f0f1733e3f59628b0104ff2c8f3d009ce3307a5dd5d84fa88d7",
+ "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c86",
+ "gasUsed": "0x028b42",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -6880,7 +10814,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xa5bfc66b8794dac04b42067644ffbbb88e9ef08a5bc235374d9046f0c868375d"
+ "hash": "0x9da4aa1610b86dc9e660469d98d56b1ab0cf45f52062d187b4b78f1c856bbc49"
},
"blocknumber": "1",
"transactions": [
@@ -6893,11 +10827,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca782af93a59a4978439a9a05cf6324e0e558c68b114f590589255bffe9ea2c0917a6ff6a7cd2e317f26f18b07802e9379a",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a861a2aef7aa82db033bfa125b9f756afecaf1db28384925d5007bcf7dff1a53b72bdf522610303075aeecab41685d720",
"accessList": [],
- "v": "0x01",
- "r": "0xf12890dac4605451cc47201df1836e7868c1fe0177e2fc00e12c94cb319ae86a",
- "s": "0x74c4958c3992ba2e0cb80d0a7ba8075e4238086ece1ec445211af18656405f56",
+ "v": "0x00",
+ "r": "0xac4f85f8ffec48fb8cd4304a0db3bdb5bbf90a82a585325744d0a80512d9e064",
+ "s": "0x5a913cb5dff943b5cba667f91523174f62f7d49c59399890703cb8e8e61f5bfb",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -6905,7 +10839,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xa5bfc66b8794dac04b42067644ffbbb88e9ef08a5bc235374d9046f0c868375d",
+ "lastblockhash": "0x9da4aa1610b86dc9e660469d98d56b1ab0cf45f52062d187b4b78f1c856bbc49",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -6932,10 +10866,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
+ "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x02": "0x02",
+ "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x05": "0x02"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -6948,16 +10882,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee2856",
+ "balance": "0xffffffffffffee3132",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "053-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe": {
+ "083-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -6988,19 +10922,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dbdb7fbdca9b5af1f8e50f669c4b5c940e7b9df445f3479df8c920de78e02347a0054aa0f0c2246c7457b03a391afaa949ec3e39b905dfda383f15270f65430819a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c994b3fc86ed60de7223ce1ec3a22dcf3c7c3672c1870ffa0888bc29eeb684e9120857089163dea588685ff2fa0798e808c001a01ee54e9270802851ac653fabaf9e1492561df273e530d0f72f83fc06f0d06f3ca068e7cd4bd3b37d28e7c8a21cd53b48d6a650583d44020288f18797390767e45ec0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0baa6bba6b3405a2074bb78915ae506848588d568646009db841bba2f9a27b7c6a0240954eeb71487e243620f746e9cc5a2924de9178684e710582242fdf649cd5aa01f4471e72609435e3c623b2bdd24443eff8c038c1518d3363d7be3f718a83963b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b2a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655682f1cd05471ab6ff21bcfd5c3369cba05b03a872a10829236d184fe1872767c391c2aa7e3b85babb1e6093b7224e7732c001a02fef77316aed95d26497fa65531661195bd2c1441810fc131f5d69b8ca87a877a00e801a95e9f1aa9a8b0897c6b61f83eafc2f650ba05a64552683643d6e858bf1c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xdbdb7fbdca9b5af1f8e50f669c4b5c940e7b9df445f3479df8c920de78e02347",
- "transactionsTrie": "0x054aa0f0c2246c7457b03a391afaa949ec3e39b905dfda383f15270f65430819",
- "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a",
+ "stateRoot": "0xbaa6bba6b3405a2074bb78915ae506848588d568646009db841bba2f9a27b7c6",
+ "transactionsTrie": "0x240954eeb71487e243620f746e9cc5a2924de9178684e710582242fdf649cd5a",
+ "receiptTrie": "0x1f4471e72609435e3c623b2bdd24443eff8c038c1518d3363d7be3f718a83963",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b12",
+ "gasUsed": "0x028b2a",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -7010,7 +10944,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xa8fad688678f4c8665c013035a76dffa8262062836a58a6e303f41f5e5e1f819"
+ "hash": "0x064208421944db644db5b7b42bbb37296106505424aa706dc30285900e562e6b"
},
"blocknumber": "1",
"transactions": [
@@ -7023,11 +10957,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c994b3fc86ed60de7223ce1ec3a22dcf3c7c3672c1870ffa0888bc29eeb684e9120857089163dea588685ff2fa0798e808",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655682f1cd05471ab6ff21bcfd5c3369cba05b03a872a10829236d184fe1872767c391c2aa7e3b85babb1e6093b7224e7732",
"accessList": [],
"v": "0x01",
- "r": "0x1ee54e9270802851ac653fabaf9e1492561df273e530d0f72f83fc06f0d06f3c",
- "s": "0x68e7cd4bd3b37d28e7c8a21cd53b48d6a650583d44020288f18797390767e45e",
+ "r": "0x2fef77316aed95d26497fa65531661195bd2c1441810fc131f5d69b8ca87a877",
+ "s": "0x0e801a95e9f1aa9a8b0897c6b61f83eafc2f650ba05a64552683643d6e858bf1",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7035,7 +10969,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xa8fad688678f4c8665c013035a76dffa8262062836a58a6e303f41f5e5e1f819",
+ "lastblockhash": "0x064208421944db644db5b7b42bbb37296106505424aa706dc30285900e562e6b",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7062,10 +10996,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x02": "0x01",
- "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x05": "0x01"
+ "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
+ "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -7078,16 +11012,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3282",
+ "balance": "0xffffffffffffee31da",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "054-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b24f8997145435c": {
+ "084-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -7118,19 +11052,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02a85f21352cead1c679dd9a42d42f9c12fbb871e4a75558e8c2593d501e9f694a0622fb6c2c5f74f001d018380942db97241f1effe2c46b3499b82dc2b304eed95a03db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa229f9de17c0f4b53ee9d448c189a5909358e32ec04409265497cf41cbdcd03af5bd50812cafffc09e08e0e7e7b96337c080a0115b81c4aa7b33a365679981d8ea81ba8f7993b52903a333319bad3fe1ec6250a037d229faa44fbd5230a23b0d98da28d0b646555a121db5945ee763e9aee38b64c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edfa04ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1ba0b2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c7a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a03273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83ca07fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x2a85f21352cead1c679dd9a42d42f9c12fbb871e4a75558e8c2593d501e9f694",
- "transactionsTrie": "0x622fb6c2c5f74f001d018380942db97241f1effe2c46b3499b82dc2b304eed95",
- "receiptTrie": "0x3db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19",
+ "stateRoot": "0x94d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edf",
+ "transactionsTrie": "0x4ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1b",
+ "receiptTrie": "0xb2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0289b6",
+ "gasUsed": "0x028c7a",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -7140,7 +11074,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x4fc55c78fb04d618685d41585088e329f20b37353c4126619f01c4f9350625c7"
+ "hash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4"
},
"blocknumber": "1",
"transactions": [
@@ -7153,11 +11087,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa229f9de17c0f4b53ee9d448c189a5909358e32ec04409265497cf41cbdcd03af5bd50812cafffc09e08e0e7e7b96337",
+ "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
- "v": "0x00",
- "r": "0x115b81c4aa7b33a365679981d8ea81ba8f7993b52903a333319bad3fe1ec6250",
- "s": "0x37d229faa44fbd5230a23b0d98da28d0b646555a121db5945ee763e9aee38b64",
+ "v": "0x01",
+ "r": "0x3273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83c",
+ "s": "0x7fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7165,7 +11099,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x4fc55c78fb04d618685d41585088e329f20b37353c4126619f01c4f9350625c7",
+ "lastblockhash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7192,10 +11126,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x02": "0x01",
- "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x05": "0x01"
+ "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -7208,16 +11142,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3c06",
+ "balance": "0xffffffffffffee28aa",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "055-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1": {
+ "085-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -7248,19 +11182,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bda0ad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3aa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0ff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbba02957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8ea04956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afda01cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a08dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351a01e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x1a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bd",
- "transactionsTrie": "0xad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3a",
- "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a",
+ "stateRoot": "0x8a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8e",
+ "transactionsTrie": "0x4956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afd",
+ "receiptTrie": "0x1cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4c",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b12",
+ "gasUsed": "0x01ec0a",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -7270,7 +11204,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271"
+ "hash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931"
},
"blocknumber": "1",
"transactions": [
@@ -7283,11 +11217,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
"v": "0x00",
- "r": "0xff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbb",
- "s": "0x2957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3",
+ "r": "0x8dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351",
+ "s": "0x1e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7295,7 +11229,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271",
+ "lastblockhash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7322,10 +11256,8 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x02": "0x02",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x05": "0x02"
+ "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -7338,16 +11270,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3282",
+ "balance": "0xfffffffffffff28bba",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "056-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af669445747d2585": {
+ "086-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -7378,13 +11310,13 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a82e6f4eedc2d36d0947e616e82c2ec695173750ee72adb98a4c8d69b0b2cb2a0017d9955a8573bf63d7c249d58b10aa74f61b65b0c1576819cfed9f7dc7d0a08a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7908fa50ed7c7359b6fea6031f8089459bb91ea77cb0af622bdfc7abb7a98d571aba9c322e70b25e2f439fc75887a0af0c080a05dd55ab0c5ee2e7a56882443088d6930fa546589d54785031160621a6fcf8361a0253466980aee26f63c683388f233fe50e49eb70a9e3e41d050fbb16fde75612dc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03c6e28e82ab7e39e7119bb6fdbfa1f25abeead79da2f056ec08751e761a6a330a04636f4dc5b33ce0f2cceb49e2b892967cf83f3f68fa1a777bdbe635eebe5ed47a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7acd56791e0ab0d1b3802021862013418993da2646e87140e12631e2914d9e6c676466aa3adfc91b61f84255544cab544c080a089d9c97ad5598311895ada0f236874d7e335a9f3c3e4cedcaba1a0940c3335f4a001308456b269a47618f76d89289d7d53cf8ad10b598211552a6aef86ce54d3f1c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x7a82e6f4eedc2d36d0947e616e82c2ec695173750ee72adb98a4c8d69b0b2cb2",
- "transactionsTrie": "0x017d9955a8573bf63d7c249d58b10aa74f61b65b0c1576819cfed9f7dc7d0a08",
+ "stateRoot": "0x3c6e28e82ab7e39e7119bb6fdbfa1f25abeead79da2f056ec08751e761a6a330",
+ "transactionsTrie": "0x4636f4dc5b33ce0f2cceb49e2b892967cf83f3f68fa1a777bdbe635eebe5ed47",
"receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
@@ -7400,7 +11332,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xfcf43ffdb4a1a6f70c41b20be1bbbbfb7f69ac5babe7e288d778bb1cb981f218"
+ "hash": "0x866b94d6c4f292d309627942aa721ce4a7a0a51e9f28c8a386cf54cc1144d2d1"
},
"blocknumber": "1",
"transactions": [
@@ -7413,11 +11345,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7908fa50ed7c7359b6fea6031f8089459bb91ea77cb0af622bdfc7abb7a98d571aba9c322e70b25e2f439fc75887a0af0",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7acd56791e0ab0d1b3802021862013418993da2646e87140e12631e2914d9e6c676466aa3adfc91b61f84255544cab544",
"accessList": [],
"v": "0x00",
- "r": "0x5dd55ab0c5ee2e7a56882443088d6930fa546589d54785031160621a6fcf8361",
- "s": "0x253466980aee26f63c683388f233fe50e49eb70a9e3e41d050fbb16fde75612d",
+ "r": "0x89d9c97ad5598311895ada0f236874d7e335a9f3c3e4cedcaba1a0940c3335f4",
+ "s": "0x01308456b269a47618f76d89289d7d53cf8ad10b598211552a6aef86ce54d3f1",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7425,7 +11357,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xfcf43ffdb4a1a6f70c41b20be1bbbbfb7f69ac5babe7e288d778bb1cb981f218",
+ "lastblockhash": "0x866b94d6c4f292d309627942aa721ce4a7a0a51e9f28c8a386cf54cc1144d2d1",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7452,9 +11384,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
}
},
@@ -7475,9 +11407,9 @@
},
"sealEngine": "NoProof"
},
- "057-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43": {
+ "087-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_cae5d3491190b777": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -7508,19 +11440,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d93fbab040008567a3edeaa58e67bee598855e01402491e32f55c975542392a9a05ae8bcb5296c1c9e86d53b331a53322074ae26fb50ce7fd4074ad6504c4e854aa0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa80216e6ca6221a11f1a0417387eaba6571d2cfdfa338d69d173923d8722fa8394bf9ab487d2a155d1def23a512ef5a3c001a07286395d87b2331ef76c7160adf6317bb5d3ff284632ba3861a4ac2cfc9ec464a039aeceebebc37a0bc3f4b611e9c1b559622fc5ed0841b43f7bc77d4a97b7172fc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061e42f21db8b723aff80ad17aeab3e981a4ca4eddcb3d187cd6d8ffdb6fcc78a06b9b49172b85dc42d664a601ee9943084e12a5c5a093a5056bc8f8889fd75418a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa4cc8c419ade0cf043cbf30f43c8f7ee6da3ab8d2c15070f323e5a13a8178fe07c8f89686e5fd16565247b520028251bc080a08bcafbc1facaa4cb6741a2d82139f20782aa8eb8cfba39d87a43c9e8a0dbe363a024a6f44071130a7ae0dabb24d83771d93d8d9314a5d5c1a58d1131a27bc14a8ac0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd93fbab040008567a3edeaa58e67bee598855e01402491e32f55c975542392a9",
- "transactionsTrie": "0x5ae8bcb5296c1c9e86d53b331a53322074ae26fb50ce7fd4074ad6504c4e854a",
- "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25",
+ "stateRoot": "0x061e42f21db8b723aff80ad17aeab3e981a4ca4eddcb3d187cd6d8ffdb6fcc78",
+ "transactionsTrie": "0x6b9b49172b85dc42d664a601ee9943084e12a5c5a093a5056bc8f8889fd75418",
+ "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b36",
+ "gasUsed": "0x028c92",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -7530,7 +11462,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x8ae29cd864d48ff784bd87b8d684bbf852ee9bfe097ef4cc1c215dafcfba0e0e"
+ "hash": "0x05839413c2c7c0c4cc002fa6486e22f6661a90383d634d9964c87c09ed7507da"
},
"blocknumber": "1",
"transactions": [
@@ -7543,11 +11475,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa80216e6ca6221a11f1a0417387eaba6571d2cfdfa338d69d173923d8722fa8394bf9ab487d2a155d1def23a512ef5a3",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa4cc8c419ade0cf043cbf30f43c8f7ee6da3ab8d2c15070f323e5a13a8178fe07c8f89686e5fd16565247b520028251b",
"accessList": [],
- "v": "0x01",
- "r": "0x7286395d87b2331ef76c7160adf6317bb5d3ff284632ba3861a4ac2cfc9ec464",
- "s": "0x39aeceebebc37a0bc3f4b611e9c1b559622fc5ed0841b43f7bc77d4a97b7172f",
+ "v": "0x00",
+ "r": "0x8bcafbc1facaa4cb6741a2d82139f20782aa8eb8cfba39d87a43c9e8a0dbe363",
+ "s": "0x24a6f44071130a7ae0dabb24d83771d93d8d9314a5d5c1a58d1131a27bc14a8a",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7555,7 +11487,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x8ae29cd864d48ff784bd87b8d684bbf852ee9bfe097ef4cc1c215dafcfba0e0e",
+ "lastblockhash": "0x05839413c2c7c0c4cc002fa6486e22f6661a90383d634d9964c87c09ed7507da",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7582,10 +11514,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x02": "0x02",
- "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x05": "0x02"
+ "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -7598,16 +11530,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3186",
+ "balance": "0xffffffffffffee2802",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "058-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835": {
+ "088-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -7638,19 +11570,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa063ca4ee1ef936fcfcddb55f47d7b2902bfa3d7855d6a9b3b19cc55785d85e971a0673f860c241b4cf79b81665e211541ce7686b5c558879f23ad08102b22db8ec5a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7abacbdcba60523fdc84ed1a32bb770f610f8b284d875479918c2fe397e04eb52ecc0f1ff0029f9466ffe5b278b8fecc3c001a05a9dd8e077028eb136811b6931c933d79db0e6a6bdeb8aa9a0dc6655f7f45a46a030ac7caa8cf5388f9c528aa6baa30292a9f912da23cbb05d43e2a1f1457c36aac0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a77e2b492532b64b86b9dcce607e770834cc0c4a7fd076e43df2f4fbb7522e35a04943b7c3bdde613d3334ec74191ff4e6dbe8b9ad6e11e9489b04438d00353d2ba08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b8f731ba6a52e419ffc843c50d2947d30e933e3a881b208de54149714ece74a599503f84c6249b5fd8a7c70189882a6bc080a041d65377829837a1adab9efd7d6b34c00140bfa4dbbf5053348e12652e6a4965a060900e4e68a9787aaac7a45314c939c204ee41d3e5fa99fd463f47cbebfd6d9ec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x63ca4ee1ef936fcfcddb55f47d7b2902bfa3d7855d6a9b3b19cc55785d85e971",
- "transactionsTrie": "0x673f860c241b4cf79b81665e211541ce7686b5c558879f23ad08102b22db8ec5",
- "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25",
+ "stateRoot": "0xa77e2b492532b64b86b9dcce607e770834cc0c4a7fd076e43df2f4fbb7522e35",
+ "transactionsTrie": "0x4943b7c3bdde613d3334ec74191ff4e6dbe8b9ad6e11e9489b04438d00353d2b",
+ "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b36",
+ "gasUsed": "0x028caa",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -7660,7 +11592,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xa975a49b0be77170ceded7f5ca609a2334868660a38c83eb6114d6368c380e20"
+ "hash": "0x9198e5aca01694d50428deac8ff3befe2ff2f46f92bd0a4b705e7bd154312a7d"
},
"blocknumber": "1",
"transactions": [
@@ -7673,11 +11605,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7abacbdcba60523fdc84ed1a32bb770f610f8b284d875479918c2fe397e04eb52ecc0f1ff0029f9466ffe5b278b8fecc3",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b8f731ba6a52e419ffc843c50d2947d30e933e3a881b208de54149714ece74a599503f84c6249b5fd8a7c70189882a6b",
"accessList": [],
- "v": "0x01",
- "r": "0x5a9dd8e077028eb136811b6931c933d79db0e6a6bdeb8aa9a0dc6655f7f45a46",
- "s": "0x30ac7caa8cf5388f9c528aa6baa30292a9f912da23cbb05d43e2a1f1457c36aa",
+ "v": "0x00",
+ "r": "0x41d65377829837a1adab9efd7d6b34c00140bfa4dbbf5053348e12652e6a4965",
+ "s": "0x60900e4e68a9787aaac7a45314c939c204ee41d3e5fa99fd463f47cbebfd6d9e",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7685,7 +11617,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xa975a49b0be77170ceded7f5ca609a2334868660a38c83eb6114d6368c380e20",
+ "lastblockhash": "0x9198e5aca01694d50428deac8ff3befe2ff2f46f92bd0a4b705e7bd154312a7d",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7712,10 +11644,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x02": "0x02",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x05": "0x02"
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -7728,16 +11660,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3186",
+ "balance": "0xffffffffffffee275a",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "059-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62": {
+ "089-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d736268229bd87ec": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -7768,19 +11700,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d9eb050c226daea1f5a4a5055cc899aea74b7538ab2f7463bc1069f4ac253d5ea05288bdd2ef8768bb8a242ca43c73dbae4a858c8f4963142f71da81e6625717dda0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef831cc31c152e768eb8c2fd2d0c04003e7abc66b2c3f4cc7fc2b3426b4a698dc2a5e5161dfb841ad17cd09be61b33987bc080a09055b3a1e37861e12edc8174fbefff93226de35b7c3a32c949385da2104a58eda0524b4f4e311c6021899859eb32a28e7e14c4d6cae56af35452f60140bbab0a8cc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cb9e12dda586addf8d45fb0620d5e4e5530e9eea47791eff168ebe7748709f55a0340072b85a86def90391840844ed222ee1070a4aaaf16c9fe2ff56438abecddda0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655684c349506215a2d55f9d06f475b8229c6dedc08fd467f41fabae6bb042c2d0dbdbcd5f7532c475e479588eec5820fd37c080a04f5cbdea7c949e07ff124ecabd0fd003118b4830e1741231a7bf7701b4d8ee79a0560d6c4459cfb2b748f1b85745c953ed096c14b4bce5a931dacc8f4dfdd858a9c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd9eb050c226daea1f5a4a5055cc899aea74b7538ab2f7463bc1069f4ac253d5e",
- "transactionsTrie": "0x5288bdd2ef8768bb8a242ca43c73dbae4a858c8f4963142f71da81e6625717dd",
- "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771",
+ "stateRoot": "0xcb9e12dda586addf8d45fb0620d5e4e5530e9eea47791eff168ebe7748709f55",
+ "transactionsTrie": "0x340072b85a86def90391840844ed222ee1070a4aaaf16c9fe2ff56438abecddd",
+ "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b1e",
+ "gasUsed": "0x028c9e",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -7790,7 +11722,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xbbe1d784e46be6d8d26e3317349d1bfa5a3f73699704569513472ee753e1ceb0"
+ "hash": "0xbf2fe0b35344f436a53566abcbf196e3346e629bf85b1ccb6122aaa6c3f1013f"
},
"blocknumber": "1",
"transactions": [
@@ -7803,11 +11735,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef831cc31c152e768eb8c2fd2d0c04003e7abc66b2c3f4cc7fc2b3426b4a698dc2a5e5161dfb841ad17cd09be61b33987b",
+ "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655684c349506215a2d55f9d06f475b8229c6dedc08fd467f41fabae6bb042c2d0dbdbcd5f7532c475e479588eec5820fd37",
"accessList": [],
"v": "0x00",
- "r": "0x9055b3a1e37861e12edc8174fbefff93226de35b7c3a32c949385da2104a58ed",
- "s": "0x524b4f4e311c6021899859eb32a28e7e14c4d6cae56af35452f60140bbab0a8c",
+ "r": "0x4f5cbdea7c949e07ff124ecabd0fd003118b4830e1741231a7bf7701b4d8ee79",
+ "s": "0x560d6c4459cfb2b748f1b85745c953ed096c14b4bce5a931dacc8f4dfdd858a9",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7815,7 +11747,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xbbe1d784e46be6d8d26e3317349d1bfa5a3f73699704569513472ee753e1ceb0",
+ "lastblockhash": "0xbf2fe0b35344f436a53566abcbf196e3346e629bf85b1ccb6122aaa6c3f1013f",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7842,10 +11774,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
- "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -7858,16 +11790,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee322e",
+ "balance": "0xffffffffffffee27ae",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "060-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6": {
+ "090-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -7898,19 +11830,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edfa04ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1ba0b2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c7a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a03273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83ca07fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3dc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6ba82bbb29fd8699921ecc6f2fb64c0e8927d68b29486b12ee863a03f89090ba08dcb7d350e47478f64fe140d44248afada8290fa1b89bdb4dc7e8caa15ab8178a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b794fce36bf7e9f0ed981728fcd829013de96f7d25f8b4fe885059ec24af36f801ffbf68ec4604ef6e5f5f800f5cf31238c080a0067323404069e69388d57089f941d19d87c6e0c6d02cc5abb5555b2647cd0e5ca033c29ae9776ef9a261652a5ba6a905d7b17c612e9719b3445b8b95b20c1c76edc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x94d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edf",
- "transactionsTrie": "0x4ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1b",
- "receiptTrie": "0xb2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4",
+ "stateRoot": "0xa6ba82bbb29fd8699921ecc6f2fb64c0e8927d68b29486b12ee863a03f89090b",
+ "transactionsTrie": "0x8dcb7d350e47478f64fe140d44248afada8290fa1b89bdb4dc7e8caa15ab8178",
+ "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c7a",
+ "gasUsed": "0x028b42",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -7920,7 +11852,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4"
+ "hash": "0x1717088bddecb58a090f9ca15d02634e4295dc0cc1fa823bd3966dc2ffcd8dfc"
},
"blocknumber": "1",
"transactions": [
@@ -7933,11 +11865,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b794fce36bf7e9f0ed981728fcd829013de96f7d25f8b4fe885059ec24af36f801ffbf68ec4604ef6e5f5f800f5cf31238",
"accessList": [],
- "v": "0x01",
- "r": "0x3273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83c",
- "s": "0x7fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3d",
+ "v": "0x00",
+ "r": "0x067323404069e69388d57089f941d19d87c6e0c6d02cc5abb5555b2647cd0e5c",
+ "s": "0x33c29ae9776ef9a261652a5ba6a905d7b17c612e9719b3445b8b95b20c1c76ed",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -7945,7 +11877,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4",
+ "lastblockhash": "0x1717088bddecb58a090f9ca15d02634e4295dc0cc1fa823bd3966dc2ffcd8dfc",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -7972,10 +11904,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x02": "0x02",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x05": "0x02"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -7988,16 +11920,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee28aa",
+ "balance": "0xffffffffffffee3132",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "061-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd": {
+ "091-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8028,19 +11960,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8ea04956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afda01cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a08dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351a01e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c44b5e39b37b8cb502c941cdfec15123d1d2e70da484cae70df18eb43c5878da03cbb8f64c21f3488dc3a17ed5cfbeac187a9673e40ecb4c73fbcc4dceae467dea0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b3477fc9a5bfab5fdb5523251818ee5a6d52613c59502a3d2df58217f4e366cd9ef37dee55bf2c705a2b08e7808b6fa0c001a00e22855a71f7c31650eaf8335938ee97e916da21566e14046da73b02b0d161c6a070b1f23ed27aa070cbdda6e8df2d8a90a2144f997b5c6ef2cfbc6e3c84ae53c1c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x8a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8e",
- "transactionsTrie": "0x4956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afd",
- "receiptTrie": "0x1cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4c",
+ "stateRoot": "0x4c44b5e39b37b8cb502c941cdfec15123d1d2e70da484cae70df18eb43c5878d",
+ "transactionsTrie": "0x3cbb8f64c21f3488dc3a17ed5cfbeac187a9673e40ecb4c73fbcc4dceae467de",
+ "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x01ec0a",
+ "gasUsed": "0x028c9e",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8050,7 +11982,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931"
+ "hash": "0x77fe6f82e9e181674653ca4d9b339fcd0ea15b3f3d4e326bb9bc0073361474f9"
},
"blocknumber": "1",
"transactions": [
@@ -8063,11 +11995,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b3477fc9a5bfab5fdb5523251818ee5a6d52613c59502a3d2df58217f4e366cd9ef37dee55bf2c705a2b08e7808b6fa0",
"accessList": [],
- "v": "0x00",
- "r": "0x8dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351",
- "s": "0x1e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968",
+ "v": "0x01",
+ "r": "0x0e22855a71f7c31650eaf8335938ee97e916da21566e14046da73b02b0d161c6",
+ "s": "0x70b1f23ed27aa070cbdda6e8df2d8a90a2144f997b5c6ef2cfbc6e3c84ae53c1",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8075,7 +12007,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931",
+ "lastblockhash": "0x77fe6f82e9e181674653ca4d9b339fcd0ea15b3f3d4e326bb9bc0073361474f9",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -8102,8 +12034,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -8116,16 +12050,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xfffffffffffff28bba",
+ "balance": "0xffffffffffffee27ae",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "062-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d": {
+ "092-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8156,19 +12090,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06cabaf6cbb5545c271489c426dd41879dfaea5e512ad5906d631ac5e3cbd2db0a051c745c9a4be1d3f164a4e28eae02c034a5e6baf5022bf58f5200a8aed25da40a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480680c0d129b845321df0c5b09d06d5cee182cf743783f33d7927735e91a08a4055b4053be9cb84ba370ea275f4b91da2bfc080a01fe8e9d5179e43ab6d566bffededfeaabd68db720b2df3d6155eb00445d15830a051924536cc2eb63e70a8e0c900c2e62eaa248b2f08f9678216652222375efc3cc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa012a96687713d87fcb8dbff4ab41fd84072b423a790fd590a8b48c1b68f203430a0969fc262711bb984324b938f6758d2061a90cc922ccd6ab53c59fa054ab63161a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a98e15cbf800b69b90bfcaf1d907a9889c7743f7e5a19ee4b557471c005600f56d78e3dd887b2f5b87d76405b80dd2115c080a0095e1cc40213a480ea2851dfccecfef669a825673679ed086612336af0beacdfa0664a24c68797b38dc135d4705a58c6132853afe099432ad2d8384f9609281bbac0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x6cabaf6cbb5545c271489c426dd41879dfaea5e512ad5906d631ac5e3cbd2db0",
- "transactionsTrie": "0x51c745c9a4be1d3f164a4e28eae02c034a5e6baf5022bf58f5200a8aed25da40",
- "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117",
+ "stateRoot": "0x12a96687713d87fcb8dbff4ab41fd84072b423a790fd590a8b48c1b68f203430",
+ "transactionsTrie": "0x969fc262711bb984324b938f6758d2061a90cc922ccd6ab53c59fa054ab63161",
+ "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028cb6",
+ "gasUsed": "0x01efb2",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8178,7 +12112,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xca27b8c1cdcf74c49e1324e487be699f5c96316dfc3341d8b3c2011bca431aa8"
+ "hash": "0x15b8eb47108f60520cf41b35d331598de50524890fe113f9c69c51339402f65a"
},
"blocknumber": "1",
"transactions": [
@@ -8191,11 +12125,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480680c0d129b845321df0c5b09d06d5cee182cf743783f33d7927735e91a08a4055b4053be9cb84ba370ea275f4b91da2bf",
+ "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a98e15cbf800b69b90bfcaf1d907a9889c7743f7e5a19ee4b557471c005600f56d78e3dd887b2f5b87d76405b80dd2115",
"accessList": [],
"v": "0x00",
- "r": "0x1fe8e9d5179e43ab6d566bffededfeaabd68db720b2df3d6155eb00445d15830",
- "s": "0x51924536cc2eb63e70a8e0c900c2e62eaa248b2f08f9678216652222375efc3c",
+ "r": "0x095e1cc40213a480ea2851dfccecfef669a825673679ed086612336af0beacdf",
+ "s": "0x664a24c68797b38dc135d4705a58c6132853afe099432ad2d8384f9609281bba",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8203,7 +12137,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xca27b8c1cdcf74c49e1324e487be699f5c96316dfc3341d8b3c2011bca431aa8",
+ "lastblockhash": "0x15b8eb47108f60520cf41b35d331598de50524890fe113f9c69c51339402f65a",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -8230,10 +12164,8 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
- "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
+ "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e",
+ "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -8246,16 +12178,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee2706",
+ "balance": "0xfffffffffffff27222",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "063-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_cae5d3491190b777": {
+ "093-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8286,19 +12218,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08bc8847f05a285b40e6d9ef998f34f48b2ddea75570837eaba92fb31929dcc63a09674cfa1ac60e3f323cefdbe1f455380fed3f446dd2190e29bf499514c4ecd92a0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7af62efd28d2f6a4d044da3db338612b43f453b7746999c7501f5be48c1dce51e481b5cfe5ec93f90264ba0655782ffe9c001a05af3651144b6db2d2b4486ebc7d37c5036e0187b78113d17483c17e7474686eca051d5ed9810bac2f80217a8cafb605d6088551cedd4611961368380500a834e9bc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50a0b01a58e525e5c8e075b9cf95fd78c5876f82c6149b3c273299d8370144497550a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b798613e9e1b1ed52fc2fdc54e945b863ff52870e6565307ff9e32327196d7a03c428fc51a9abedc97de2a68daa1274b50c001a00b1dd21bc52e26bc253461aac815ad347ba3b80b031e64585a3f509f29def9dda04e86e016839d180a695392d3b3f3bf91f8fcb23e155f7edf2c67363c66e4c1e1c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x8bc8847f05a285b40e6d9ef998f34f48b2ddea75570837eaba92fb31929dcc63",
- "transactionsTrie": "0x9674cfa1ac60e3f323cefdbe1f455380fed3f446dd2190e29bf499514c4ecd92",
- "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2",
+ "stateRoot": "0x80463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50",
+ "transactionsTrie": "0xb01a58e525e5c8e075b9cf95fd78c5876f82c6149b3c273299d8370144497550",
+ "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c9e",
+ "gasUsed": "0x028b42",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8308,7 +12240,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x2cb32d117d8470b9808f860b4be57633d5b34b5dcc88b1069bfbe3ae2cf97546"
+ "hash": "0x2a2092031e6b32783ea664a205cad86d69e348005f0fdb8c2443cbbe5d56a127"
},
"blocknumber": "1",
"transactions": [
@@ -8321,11 +12253,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7af62efd28d2f6a4d044da3db338612b43f453b7746999c7501f5be48c1dce51e481b5cfe5ec93f90264ba0655782ffe9",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b798613e9e1b1ed52fc2fdc54e945b863ff52870e6565307ff9e32327196d7a03c428fc51a9abedc97de2a68daa1274b50",
"accessList": [],
"v": "0x01",
- "r": "0x5af3651144b6db2d2b4486ebc7d37c5036e0187b78113d17483c17e7474686ec",
- "s": "0x51d5ed9810bac2f80217a8cafb605d6088551cedd4611961368380500a834e9b",
+ "r": "0x0b1dd21bc52e26bc253461aac815ad347ba3b80b031e64585a3f509f29def9dd",
+ "s": "0x4e86e016839d180a695392d3b3f3bf91f8fcb23e155f7edf2c67363c66e4c1e1",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8333,7 +12265,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x2cb32d117d8470b9808f860b4be57633d5b34b5dcc88b1069bfbe3ae2cf97546",
+ "lastblockhash": "0x2a2092031e6b32783ea664a205cad86d69e348005f0fdb8c2443cbbe5d56a127",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -8360,10 +12292,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x02": "0x01",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x05": "0x01"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -8376,16 +12308,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee27ae",
+ "balance": "0xffffffffffffee3132",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "064-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4": {
+ "094-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8416,19 +12348,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034ad193f0d53a910a588eaa04668aaf454d9c5189613ac6b94b411648ed1e432a09d97580ee8b29fe3ee44720b3a5502979449602bbbff6996b27ed99f5916ef36a08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480695c51f028ec8ace94b2c24fff6662e4c61ad7b315b799aa5f40fcf5b36b2f1b6f9fc23bc66290aeef1de7e6ee4cb52cec080a06f62747110dce51e6ea06763ff0d52961db3eb0c11ae2841137c605385861120a02bdfbc2fe318f511607f42a1176179a26e32a173e06f7e47fb4dbcdee16d5432c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0281da5a4e5f358c7a345c9dc95ae20c8061cf7443c31b8b8fc950ece84a1c9a4a0fd89dc294337822d255b544c80ada149275e1b882b77123614c5ee9a1bfe91b6a0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a1d8f2a5ab22acdfc1a9492ee2e1c2cbde681b51b312bf718821937e5088cd8ee002b718264027d10c5c5855dabe0353c001a0d9ef3fce097d461df93b7c30d2c87be75223f06bed8d34140be5e5fa21f05c99a04833e5e03ebdaca7516110a8239582e5437a99cf909df4b0d9edd63906fef9dec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x34ad193f0d53a910a588eaa04668aaf454d9c5189613ac6b94b411648ed1e432",
- "transactionsTrie": "0x9d97580ee8b29fe3ee44720b3a5502979449602bbbff6996b27ed99f5916ef36",
- "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84",
+ "stateRoot": "0x281da5a4e5f358c7a345c9dc95ae20c8061cf7443c31b8b8fc950ece84a1c9a4",
+ "transactionsTrie": "0xfd89dc294337822d255b544c80ada149275e1b882b77123614c5ee9a1bfe91b6",
+ "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028caa",
+ "gasUsed": "0x01efbe",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8438,7 +12370,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x703933c31f7594881e066aa7cbcad15e25857e07f5275c9d6689cd141ed8ced3"
+ "hash": "0x0e1f82cabf617e6eeb6aba9d9cab64de0451bd122adc791e3e7e9faf8c6f5321"
},
"blocknumber": "1",
"transactions": [
@@ -8451,11 +12383,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480695c51f028ec8ace94b2c24fff6662e4c61ad7b315b799aa5f40fcf5b36b2f1b6f9fc23bc66290aeef1de7e6ee4cb52ce",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a1d8f2a5ab22acdfc1a9492ee2e1c2cbde681b51b312bf718821937e5088cd8ee002b718264027d10c5c5855dabe0353",
"accessList": [],
- "v": "0x00",
- "r": "0x6f62747110dce51e6ea06763ff0d52961db3eb0c11ae2841137c605385861120",
- "s": "0x2bdfbc2fe318f511607f42a1176179a26e32a173e06f7e47fb4dbcdee16d5432",
+ "v": "0x01",
+ "r": "0xd9ef3fce097d461df93b7c30d2c87be75223f06bed8d34140be5e5fa21f05c99",
+ "s": "0x4833e5e03ebdaca7516110a8239582e5437a99cf909df4b0d9edd63906fef9de",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8463,7 +12395,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x703933c31f7594881e066aa7cbcad15e25857e07f5275c9d6689cd141ed8ced3",
+ "lastblockhash": "0x0e1f82cabf617e6eeb6aba9d9cab64de0451bd122adc791e3e7e9faf8c6f5321",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -8490,10 +12422,8 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
- "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -8506,16 +12436,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee275a",
+ "balance": "0xfffffffffffff271ce",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "065-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d736268229bd87ec": {
+ "095-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8546,19 +12476,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094bae011c335ccbae4583573573abe573c36eecee4ceaa7312a541cb0dc3b26ba089e3f2e38b2654517083bee71b044f55d28fc4d2085a3b3acef88bfd32697697a0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efb8d91f1642376ff871e99eda3209fb7968520c5353522f31d1013e8925d05e7ea44f9117ccedfa03ef5f6fc8205080a7c001a09b2e5b4a99482889df72906e95764e37f693af4b2899382c26d50e7a33dcb3e8a02b9c1e23ad4b0aad8a239b8c1c6dcc9484b4ca3582396b0aa0264dc379b42eabc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148a09e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041aa04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6a007bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6ec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x94bae011c335ccbae4583573573abe573c36eecee4ceaa7312a541cb0dc3b26b",
- "transactionsTrie": "0x89e3f2e38b2654517083bee71b044f55d28fc4d2085a3b3acef88bfd32697697",
- "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2",
+ "stateRoot": "0x2dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148",
+ "transactionsTrie": "0x9e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041a",
+ "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028c9e",
+ "gasUsed": "0x02878e",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8568,7 +12498,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xf1870d27d77c8b48c6dbbe16c27ce6ba9a3d3bf56d394b369a7a97694d6ab77c"
+ "hash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694"
},
"blocknumber": "1",
"transactions": [
@@ -8581,11 +12511,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efb8d91f1642376ff871e99eda3209fb7968520c5353522f31d1013e8925d05e7ea44f9117ccedfa03ef5f6fc8205080a7",
+ "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
"accessList": [],
"v": "0x01",
- "r": "0x9b2e5b4a99482889df72906e95764e37f693af4b2899382c26d50e7a33dcb3e8",
- "s": "0x2b9c1e23ad4b0aad8a239b8c1c6dcc9484b4ca3582396b0aa0264dc379b42eab",
+ "r": "0x8c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6",
+ "s": "0x07bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6e",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8593,7 +12523,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xf1870d27d77c8b48c6dbbe16c27ce6ba9a3d3bf56d394b369a7a97694d6ab77c",
+ "lastblockhash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -8620,10 +12550,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
- "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5",
- "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x02": "0x01",
+ "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
+ "0x05": "0x01"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -8636,16 +12566,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee27ae",
+ "balance": "0xffffffffffffee4b1e",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "066-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49": {
+ "096-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_392169c16a2e5ef6": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8676,19 +12606,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00af575650a77124aeff39acc0fa14af57862545c18b414e1e35ca2dd7c72c2c8a04e60f6172e67893b7f1badf5c2314709a64a9d1c92998fd276eedf9d56c52384a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a99a3f7861e6350419e20be7018f518a54db5ec93698a2565b53e6303d3f99fad5559ed047ad09031b1b64111ac31b25c080a006399b8d32d14e1522ee76cf02d4bbc2be59eadaadbdc535f2eb9db3420a802ba036bd95dec675a1be2a68c5931aab856fea3e482cbc84d1524cb7b62fdf74734bc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da270bf04ffe49b249cc831a7934e58a5439ec4655c9fc08bc874178c48e7dd6a0cf0526f58408133246b140bbf6c6cd40384721ba0278f4cdec84f6d9c739bf3aa0313fd85a62385fa633ce8b1277463d99221ff62346e916dfe75fd51cf4e6ab78b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a160c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a03837f331ef931a42d2bd503ccaec668d0a7af429aa8a2136a6c573f062458f70a00ea8b177eed412c3c780563d8e223612260c73e50b5346f975ca20b3e29b7ecfc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x0af575650a77124aeff39acc0fa14af57862545c18b414e1e35ca2dd7c72c2c8",
- "transactionsTrie": "0x4e60f6172e67893b7f1badf5c2314709a64a9d1c92998fd276eedf9d56c52384",
- "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "stateRoot": "0xda270bf04ffe49b249cc831a7934e58a5439ec4655c9fc08bc874178c48e7dd6",
+ "transactionsTrie": "0xcf0526f58408133246b140bbf6c6cd40384721ba0278f4cdec84f6d9c739bf3a",
+ "receiptTrie": "0x313fd85a62385fa633ce8b1277463d99221ff62346e916dfe75fd51cf4e6ab78",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b42",
+ "gasUsed": "0x028a16",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8698,7 +12628,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xed035979e7aad9c363cf3170f7c815a9e2a1b30da55e99361eb0793e34529c1f"
+ "hash": "0x548d62acf8d2a905c85a08cf8f77154b0b76dff1eff163f7a41846c9eccfb27a"
},
"blocknumber": "1",
"transactions": [
@@ -8711,11 +12641,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a99a3f7861e6350419e20be7018f518a54db5ec93698a2565b53e6303d3f99fad5559ed047ad09031b1b64111ac31b25",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x00",
- "r": "0x06399b8d32d14e1522ee76cf02d4bbc2be59eadaadbdc535f2eb9db3420a802b",
- "s": "0x36bd95dec675a1be2a68c5931aab856fea3e482cbc84d1524cb7b62fdf74734b",
+ "v": "0x01",
+ "r": "0x3837f331ef931a42d2bd503ccaec668d0a7af429aa8a2136a6c573f062458f70",
+ "s": "0x0ea8b177eed412c3c780563d8e223612260c73e50b5346f975ca20b3e29b7ecf",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8723,7 +12653,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xed035979e7aad9c363cf3170f7c815a9e2a1b30da55e99361eb0793e34529c1f",
+ "lastblockhash": "0x548d62acf8d2a905c85a08cf8f77154b0b76dff1eff163f7a41846c9eccfb27a",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -8750,10 +12680,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x02": "0x02",
- "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x05": "0x02"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -8766,16 +12696,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3132",
+ "balance": "0xffffffffffffee3966",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "067-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6": {
+ "097-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c1e8b38219e3e12": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8806,19 +12736,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068f95302abe29257b97c5bab9ac50c73c8825b49a3daaa7acc1de1aef79ed112a0000691eac4000c3eea730513b6a2d9b797f30e420d04c607c9160ff8094945eda08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9af9bbe2e73d18f879bcc0867b22e8ac255040a0e85e258b6a8243bc12aa526067d1762dddf18fb25a9fced1cbdd9a447c080a0f5bd82b9c967246a56e75ee72508ba8e72addc869c5c033cdb2764c2a92467a0a0269568ccd014a132cc6063d738a8eff2fa4a9a1afe406239b2da3aaa31701dacc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa031a0af886db249a6ac069e774688d002210f1bdd5fcea7beee99ea1ad50159dea0f560637db06ff8a2aaf081b6d6cefe1fdbaacee532aa97dd83377edb7f766f37a07aedb86a7ca5e0d5f54c47999433049e8e614374dec3aa79bb5521ec5838fb12b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ed7e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a04e08c45058361f9bf900b2640430b0fd3960d2ac76885425b8b082479adcf2aea043a4feb89ff3a757f986129153eeec21464084c9ca5b3d63656d755969aeadd7c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x68f95302abe29257b97c5bab9ac50c73c8825b49a3daaa7acc1de1aef79ed112",
- "transactionsTrie": "0x000691eac4000c3eea730513b6a2d9b797f30e420d04c607c9160ff8094945ed",
- "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84",
+ "stateRoot": "0x31a0af886db249a6ac069e774688d002210f1bdd5fcea7beee99ea1ad50159de",
+ "transactionsTrie": "0xf560637db06ff8a2aaf081b6d6cefe1fdbaacee532aa97dd83377edb7f766f37",
+ "receiptTrie": "0x7aedb86a7ca5e0d5f54c47999433049e8e614374dec3aa79bb5521ec5838fb12",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028caa",
+ "gasUsed": "0x01ed7e",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8828,7 +12758,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x12adea8924aa245ba39b80e2d94dd4e905e5c66f13cc594f72805facec92946b"
+ "hash": "0xa33a8a4126c6e43aaf07049a8a51855f6bdcd70e3309445bfa0f9166bfdeb25c"
},
"blocknumber": "1",
"transactions": [
@@ -8841,11 +12771,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9af9bbe2e73d18f879bcc0867b22e8ac255040a0e85e258b6a8243bc12aa526067d1762dddf18fb25a9fced1cbdd9a447",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x00",
- "r": "0xf5bd82b9c967246a56e75ee72508ba8e72addc869c5c033cdb2764c2a92467a0",
- "s": "0x269568ccd014a132cc6063d738a8eff2fa4a9a1afe406239b2da3aaa31701dac",
+ "r": "0x4e08c45058361f9bf900b2640430b0fd3960d2ac76885425b8b082479adcf2ae",
+ "s": "0x43a4feb89ff3a757f986129153eeec21464084c9ca5b3d63656d755969aeadd7",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8853,7 +12783,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x12adea8924aa245ba39b80e2d94dd4e905e5c66f13cc594f72805facec92946b",
+ "lastblockhash": "0xa33a8a4126c6e43aaf07049a8a51855f6bdcd70e3309445bfa0f9166bfdeb25c",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -8880,10 +12810,8 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
- "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff",
- "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -8896,16 +12824,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee275a",
+ "balance": "0xfffffffffffff2818e",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "068-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130": {
+ "098-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c87ec986c2656c2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -8936,19 +12864,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07c7ae6e3b7e37fe03517d27b92b01a1a6f487a539f17d1c0578e6352563ce68ca0384530e2c7cb522ded9d8e1fc975a673f587ab97faa6edcdfcd6f546f2ace0e9a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a6b598c7936325f3d21e53c433720c65783d54bfddd83146f63247caba7aa25671641a9cc7b5a1ddcb229760f311cbb8c080a01014d16a615878d7b7c2875f83326490078db6f8fd6906de884050605f15df01a02e88ddff54a80578c4ccb0ab3ce79e55f433c769bc30028489cc74c17b252112c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069a6e5ec9e61c0dd420f55278ea240758028c85e1ca425810052542752c0215ea05da848f7c3284e96c06410a160cb0338f9112fa6fe880e1142c8e5de7b62e5cea05b37d7654e25aee3dc6c36ef65ac2675a8bb354cfe7ad68d4f303ec1ebb3dff0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a760c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a02b8972d475f2b8fd49d196ab6859ebc5088269cd9440c76ffa8b9e140703ea12a0188e3c6338bfb894197b95c85fb11e91645e1be92e2c219a25331db7d469aec0c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x7c7ae6e3b7e37fe03517d27b92b01a1a6f487a539f17d1c0578e6352563ce68c",
- "transactionsTrie": "0x384530e2c7cb522ded9d8e1fc975a673f587ab97faa6edcdfcd6f546f2ace0e9",
- "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2",
+ "stateRoot": "0x69a6e5ec9e61c0dd420f55278ea240758028c85e1ca425810052542752c0215e",
+ "transactionsTrie": "0x5da848f7c3284e96c06410a160cb0338f9112fa6fe880e1142c8e5de7b62e5ce",
+ "receiptTrie": "0x5b37d7654e25aee3dc6c36ef65ac2675a8bb354cfe7ad68d4f303ec1ebb3dff0",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x01efb2",
+ "gasUsed": "0x028a76",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -8958,7 +12886,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x7e8497705b9a7e82a64bc80a54846927bb288cd536b5f829872b37c88dbbacea"
+ "hash": "0x2b1edfa630ff0fbf3ef5b1118b8aa64d9e8a0b7874ad0f19b158d09634017b70"
},
"blocknumber": "1",
"transactions": [
@@ -8971,11 +12899,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a6b598c7936325f3d21e53c433720c65783d54bfddd83146f63247caba7aa25671641a9cc7b5a1ddcb229760f311cbb8",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
"v": "0x00",
- "r": "0x1014d16a615878d7b7c2875f83326490078db6f8fd6906de884050605f15df01",
- "s": "0x2e88ddff54a80578c4ccb0ab3ce79e55f433c769bc30028489cc74c17b252112",
+ "r": "0x2b8972d475f2b8fd49d196ab6859ebc5088269cd9440c76ffa8b9e140703ea12",
+ "s": "0x188e3c6338bfb894197b95c85fb11e91645e1be92e2c219a25331db7d469aec0",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -8983,7 +12911,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x7e8497705b9a7e82a64bc80a54846927bb288cd536b5f829872b37c88dbbacea",
+ "lastblockhash": "0x2b1edfa630ff0fbf3ef5b1118b8aa64d9e8a0b7874ad0f19b158d09634017b70",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9010,8 +12938,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -9024,16 +12954,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xfffffffffffff27222",
+ "balance": "0xffffffffffffee36c6",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "069-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd": {
+ "099-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_420f2a187ce77035": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9064,19 +12994,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080d19b8a97602c993869e6faaf6addd229bee4653c00e72595a20d68b44c5262a02473fc71fac6576b0825cd46e8d1a3bec85ce3634f393d15c7acb0ded63aeae3a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069331a4bf48d66edbf77db3778203ad7045ed762bcfb2fe3ded65763983208e78ec1ef255babab4b41875b9505d1fb129c001a0ccede97858b103429aa4ffcb178a984a75a67fae2fca85bb65ee612a23c1338ca07f2b4136051116784456c96450af3a2adf3168d0ed80c90007678fe464175306c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c45f6fbc1dc03631637a8cece1cea5fdcc40bd4ca04713f56fc26db31025c6c7a0a54fadc07d4cf9701c12295e2117c73aa6beaa3442e9e2a4d12ec9889979f2fea0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a038c1c7740a7cef0ee95b036edef176f98e83d51c287b930066719b4339376215a04df8d685d6c1e87bd117c798cdb3f7f8986ab2d22d8da041be9e9482f3b7ce25c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x80d19b8a97602c993869e6faaf6addd229bee4653c00e72595a20d68b44c5262",
- "transactionsTrie": "0x2473fc71fac6576b0825cd46e8d1a3bec85ce3634f393d15c7acb0ded63aeae3",
- "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "stateRoot": "0xc45f6fbc1dc03631637a8cece1cea5fdcc40bd4ca04713f56fc26db31025c6c7",
+ "transactionsTrie": "0xa54fadc07d4cf9701c12295e2117c73aa6beaa3442e9e2a4d12ec9889979f2fe",
+ "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b42",
+ "gasUsed": "0x028902",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9086,7 +13016,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x224c7188788df46059ae7bda19789dda26674d52f2493ced242dd44ec975c867"
+ "hash": "0xd556640634eefa8a1cd89bd248b23bb61776413363e1058ffed38f9ffab59cce"
},
"blocknumber": "1",
"transactions": [
@@ -9099,11 +13029,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069331a4bf48d66edbf77db3778203ad7045ed762bcfb2fe3ded65763983208e78ec1ef255babab4b41875b9505d1fb129",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x01",
- "r": "0xccede97858b103429aa4ffcb178a984a75a67fae2fca85bb65ee612a23c1338c",
- "s": "0x7f2b4136051116784456c96450af3a2adf3168d0ed80c90007678fe464175306",
+ "v": "0x00",
+ "r": "0x38c1c7740a7cef0ee95b036edef176f98e83d51c287b930066719b4339376215",
+ "s": "0x4df8d685d6c1e87bd117c798cdb3f7f8986ab2d22d8da041be9e9482f3b7ce25",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -9111,7 +13041,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x224c7188788df46059ae7bda19789dda26674d52f2493ced242dd44ec975c867",
+ "lastblockhash": "0xd556640634eefa8a1cd89bd248b23bb61776413363e1058ffed38f9ffab59cce",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9138,10 +13068,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x02": "0x01",
- "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x05": "0x01"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x02",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x02"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -9154,16 +13084,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3132",
+ "balance": "0xffffffffffffee40f2",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "070-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967": {
+ "100-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_83e53423a2dd93fe": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9194,19 +13124,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0df5de17099779f44ada6ae819c585c4e1642e0cb7b19b596ffc0e9c6048cf416a01d7092ea700da38bb361b2a6d3a0c5e5202ec07197fe458abdca16667e16b724a0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a2e739f11e3a85482c5a9941ac46608ddfe459b09fb21b81fcb8f0ac3993ac618639bff39aefb5356bee9ccd1a3ebb5cc080a01d7bc855cb0746f6efc3530efda15d083a449ab4d93ae0706f68ad0aa339ad07a0624576b1df2ec61e38f136790fb09d29cbaa84dc18e25f334a0a18a97af423dfc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c8b05c7fb0c0e00514c76ad1d1e3fa080d521102a927079693c0b55a43fa10f0a0cdc60ad22ae1fe5004eb088ab2d59654d5b4628a7392c40c0c92c5f69e706839a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0835d4b51ed0da335fd056fef9258d003fa59b9357aa385930f287dc279f00193a062a3974bc93b244e4d7892ae6f8d29ee2a1470ecf7458e559fb999d72171a901c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xdf5de17099779f44ada6ae819c585c4e1642e0cb7b19b596ffc0e9c6048cf416",
- "transactionsTrie": "0x1d7092ea700da38bb361b2a6d3a0c5e5202ec07197fe458abdca16667e16b724",
- "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed",
+ "stateRoot": "0xc8b05c7fb0c0e00514c76ad1d1e3fa080d521102a927079693c0b55a43fa10f0",
+ "transactionsTrie": "0xcdc60ad22ae1fe5004eb088ab2d59654d5b4628a7392c40c0c92c5f69e706839",
+ "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x01efbe",
+ "gasUsed": "0x0288d2",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9216,7 +13146,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x9db29d1202ee1f9433d07b7caf77efba99a03406906bf9247ba0799bbcacfbe6"
+ "hash": "0xf25678a0c17933929b30a471db876d8953df067cb31f266037edc299dc5099a2"
},
"blocknumber": "1",
"transactions": [
@@ -9229,11 +13159,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a2e739f11e3a85482c5a9941ac46608ddfe459b09fb21b81fcb8f0ac3993ac618639bff39aefb5356bee9ccd1a3ebb5c",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x00",
- "r": "0x1d7bc855cb0746f6efc3530efda15d083a449ab4d93ae0706f68ad0aa339ad07",
- "s": "0x624576b1df2ec61e38f136790fb09d29cbaa84dc18e25f334a0a18a97af423df",
+ "v": "0x01",
+ "r": "0x835d4b51ed0da335fd056fef9258d003fa59b9357aa385930f287dc279f00193",
+ "s": "0x62a3974bc93b244e4d7892ae6f8d29ee2a1470ecf7458e559fb999d72171a901",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -9241,7 +13171,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x9db29d1202ee1f9433d07b7caf77efba99a03406906bf9247ba0799bbcacfbe6",
+ "lastblockhash": "0xf25678a0c17933929b30a471db876d8953df067cb31f266037edc299dc5099a2",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9268,8 +13198,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb",
- "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x01",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x01"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -9282,16 +13214,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xfffffffffffff271ce",
+ "balance": "0xffffffffffffee4242",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "071-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517": {
+ "101-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_ed6b180ec759bcf6": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9322,19 +13254,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148a09e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041aa04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6a007bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6ec0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ddaaf48016359afad49df46e3e146ffae6bf78072927435f3ba2c4fdd52b0fc5a0e92ce5c7a3b44d5c1e67c9fc61483828f2515885923bbc92b154910d20d39ab4a0016842b977ca2488af689e83f0b510e3368e0c80a1d2d4479f5a015c5b56938eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a6a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09edfaad74a93ef4ec70995e2be3d12acff82d8e1fc3384e60953c432a87fc585a063d5d737ecc3d1a6c91b0d6f5415dc7dcaa107bda2ab5cff59302d90fa93648ec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x2dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148",
- "transactionsTrie": "0x9e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041a",
- "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad",
+ "stateRoot": "0xddaaf48016359afad49df46e3e146ffae6bf78072927435f3ba2c4fdd52b0fc5",
+ "transactionsTrie": "0xe92ce5c7a3b44d5c1e67c9fc61483828f2515885923bbc92b154910d20d39ab4",
+ "receiptTrie": "0x016842b977ca2488af689e83f0b510e3368e0c80a1d2d4479f5a015c5b56938e",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x02878e",
+ "gasUsed": "0x028a6a",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9344,7 +13276,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694"
+ "hash": "0x2118bf9e3a27cd3ca1059610ca6911b67a0b4be3fdaf96e38ee3bc7a0908d07b"
},
"blocknumber": "1",
"transactions": [
@@ -9357,11 +13289,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"accessList": [],
- "v": "0x01",
- "r": "0x8c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6",
- "s": "0x07bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6e",
+ "v": "0x00",
+ "r": "0x9edfaad74a93ef4ec70995e2be3d12acff82d8e1fc3384e60953c432a87fc585",
+ "s": "0x63d5d737ecc3d1a6c91b0d6f5415dc7dcaa107bda2ab5cff59302d90fa93648e",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -9369,7 +13301,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694",
+ "lastblockhash": "0x2118bf9e3a27cd3ca1059610ca6911b67a0b4be3fdaf96e38ee3bc7a0908d07b",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9396,10 +13328,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x02": "0x01",
- "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014",
- "0x05": "0x01"
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
+ "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -9412,16 +13344,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee4b1e",
+ "balance": "0xffffffffffffee371a",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "072-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d": {
+ "102-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9452,19 +13384,19 @@
},
"blocks": [
{
- "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016517ff33f2f352a705ef72839effd647563126be48583f8667f470859f8a90aa0419349e8571a881cc7208e90a33e328c16a2a621346310fc7c3f9f0e6eb2c4efa01db70b5b44754070ec0aadbf33226fc81e1c8d7a1e737f5ea9da94d39bd5bfcfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b260c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a0814573a8d09abfa5fd301d77ad5d6fae33211588898cb9976bd7f375a0fe61bba06dd7c58d31e48f379b3afa551172f79ff15f6699e69f4acc5e565c8680e5a503c0c0",
+ "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce0aec3039e7ad67431725efacb00523c3f4c392149a59da74278d9b28406535a00c0b6f4df3390310b67295691f4cd21d342e173dc1c9cba536b8aadb86715aa3a0c1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028af60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a0f05fb8ee4257875c13b42f75939f17df726b98bbfe3b69073aa363c074e51956a00ebccc14cc832a596833d519b63a70e9bbb6a1e0617ece789b6578099dc8a4dbc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x16517ff33f2f352a705ef72839effd647563126be48583f8667f470859f8a90a",
- "transactionsTrie": "0x419349e8571a881cc7208e90a33e328c16a2a621346310fc7c3f9f0e6eb2c4ef",
- "receiptTrie": "0x1db70b5b44754070ec0aadbf33226fc81e1c8d7a1e737f5ea9da94d39bd5bfcf",
+ "stateRoot": "0xce0aec3039e7ad67431725efacb00523c3f4c392149a59da74278d9b28406535",
+ "transactionsTrie": "0x0c0b6f4df3390310b67295691f4cd21d342e173dc1c9cba536b8aadb86715aa3",
+ "receiptTrie": "0xc1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b26",
+ "gasUsed": "0x028af6",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9474,7 +13406,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xb1a2e10cc5819fb735cea1842e2f566cd7821f9b6b2d5da21ba4f58f59308692"
+ "hash": "0x84dce0572d97f649cf3c2567441429b073b0addaad1c9a4f34d37efee4104ace"
},
"blocknumber": "1",
"transactions": [
@@ -9487,11 +13419,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98",
+ "data": "0x01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f",
"accessList": [],
- "v": "0x00",
- "r": "0x814573a8d09abfa5fd301d77ad5d6fae33211588898cb9976bd7f375a0fe61bb",
- "s": "0x6dd7c58d31e48f379b3afa551172f79ff15f6699e69f4acc5e565c8680e5a503",
+ "v": "0x01",
+ "r": "0xf05fb8ee4257875c13b42f75939f17df726b98bbfe3b69073aa363c074e51956",
+ "s": "0x0ebccc14cc832a596833d519b63a70e9bbb6a1e0617ece789b6578099dc8a4db",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -9499,7 +13431,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xb1a2e10cc5819fb735cea1842e2f566cd7821f9b6b2d5da21ba4f58f59308692",
+ "lastblockhash": "0x84dce0572d97f649cf3c2567441429b073b0addaad1c9a4f34d37efee4104ace",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9542,16 +13474,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee31f6",
+ "balance": "0xffffffffffffee3346",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "073-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91": {
+ "103-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9582,19 +13514,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa066d67cb3bef2b7fba7a4e9c5a4e2b0044b13b97be106f669b0b80c5d2ff0158ca0dcc371212c7240e779e11cf38d2c2f277175bfc1cfbd5532494f9379fff1f2fba00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f40000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a029d91af9d2dbfff89af21b78c3c3547c21f7125cbf38c87439be538f4c78d611a058c846c9c17083d2981fa72571901d8cdef98e55d7354093d249d0b163261f8fc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa049d77b1134a7f664da5a2cb001933a7f54ba3785cbac033cefae5f3c478d08b7a0f1cdcc62f37484c5435e66330383ec9f5eafba591633d7e9d5be11acd3665e87a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f400000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a00396e2fe037d79b74d6c66c829d2ec42200d36a14e899d70a8e1a2de5b3c1455a0343efb08716e9f1b429eab9b183a8ee8225b11acb08730559a0472a0ee5bcaedc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x66d67cb3bef2b7fba7a4e9c5a4e2b0044b13b97be106f669b0b80c5d2ff0158c",
- "transactionsTrie": "0xdcc371212c7240e779e11cf38d2c2f277175bfc1cfbd5532494f9379fff1f2fb",
- "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "stateRoot": "0x49d77b1134a7f664da5a2cb001933a7f54ba3785cbac033cefae5f3c478d08b7",
+ "transactionsTrie": "0xf1cdcc62f37484c5435e66330383ec9f5eafba591633d7e9d5be11acd3665e87",
+ "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b42",
+ "gasUsed": "0x028b12",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9604,7 +13536,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x59e4255c46af74e6bfad46768ec86b25e594552ae08dda95de9ad7a6efa3e890"
+ "hash": "0xeb12de866f42db18fec9fe65c7c706e69148f265928d2d481f3baa8039de4203"
},
"blocknumber": "1",
"transactions": [
@@ -9617,11 +13549,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f40000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98",
+ "data": "0x016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f400000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f",
"accessList": [],
- "v": "0x00",
- "r": "0x29d91af9d2dbfff89af21b78c3c3547c21f7125cbf38c87439be538f4c78d611",
- "s": "0x58c846c9c17083d2981fa72571901d8cdef98e55d7354093d249d0b163261f8f",
+ "v": "0x01",
+ "r": "0x0396e2fe037d79b74d6c66c829d2ec42200d36a14e899d70a8e1a2de5b3c1455",
+ "s": "0x343efb08716e9f1b429eab9b183a8ee8225b11acb08730559a0472a0ee5bcaed",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -9629,7 +13561,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x59e4255c46af74e6bfad46768ec86b25e594552ae08dda95de9ad7a6efa3e890",
+ "lastblockhash": "0xeb12de866f42db18fec9fe65c7c706e69148f265928d2d481f3baa8039de4203",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9672,16 +13604,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3132",
+ "balance": "0xffffffffffffee3282",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "074-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757": {
+ "104-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9712,19 +13644,19 @@
},
"blocks": [
{
- "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08597d112d50628860785ac166a32af5336cb4f444665550e192976be1ff275d2a0fadf4202b0ad9b1a272c261b04af316b56643c358925a4cd670068527428fb34a048644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b4c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a07a28a3570fd003c028912ff9bd518d0eb78ddfdf2af8654606b47acd6c448760a05914ab01e1b345fe3997029e800ca0bb053798bee29020a34e465fa1a650b7e8c0c0",
+ "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c795dbbe8b9418fdb29664cebecdb716ad2e795bb643d5a8f9919ddcf95c95bca0a8a7bbc2d828e0bec09041bdba1faae4a48a63f810d21ce8d74a4f743c3ff8e9a0dd60949e0bb928aede445e5c249fdcb40735f04fe45532000e49fffbef975987b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df900000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a0b1381e7a047df94ff8bbc74e2b80f32e06a243a4b40e772cbec5d950135168c3a019c9311fe07d1b68ae6789476624bc58832e2d373d506eca3e632f8e56472ed9c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x8597d112d50628860785ac166a32af5336cb4f444665550e192976be1ff275d2",
- "transactionsTrie": "0xfadf4202b0ad9b1a272c261b04af316b56643c358925a4cd670068527428fb34",
- "receiptTrie": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435",
+ "stateRoot": "0xc795dbbe8b9418fdb29664cebecdb716ad2e795bb643d5a8f9919ddcf95c95bc",
+ "transactionsTrie": "0xa8a7bbc2d828e0bec09041bdba1faae4a48a63f810d21ce8d74a4f743c3ff8e9",
+ "receiptTrie": "0xdd60949e0bb928aede445e5c249fdcb40735f04fe45532000e49fffbef975987",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b4c",
+ "gasUsed": "0x028b1c",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9734,7 +13666,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xb5f21ece934ddab11f432ac9b7f43761825e7004786c56c7eadadf4dffe5ea20"
+ "hash": "0x42188d733180d8129bf4ce235696169a1716e6d319987466ba97318ea1ed538a"
},
"blocknumber": "1",
"transactions": [
@@ -9747,11 +13679,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98",
+ "data": "0x01ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df900000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f",
"accessList": [],
- "v": "0x00",
- "r": "0x7a28a3570fd003c028912ff9bd518d0eb78ddfdf2af8654606b47acd6c448760",
- "s": "0x5914ab01e1b345fe3997029e800ca0bb053798bee29020a34e465fa1a650b7e8",
+ "v": "0x01",
+ "r": "0xb1381e7a047df94ff8bbc74e2b80f32e06a243a4b40e772cbec5d950135168c3",
+ "s": "0x19c9311fe07d1b68ae6789476624bc58832e2d373d506eca3e632f8e56472ed9",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -9759,7 +13691,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xb5f21ece934ddab11f432ac9b7f43761825e7004786c56c7eadadf4dffe5ea20",
+ "lastblockhash": "0x42188d733180d8129bf4ce235696169a1716e6d319987466ba97318ea1ed538a",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9802,16 +13734,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee30ec",
+ "balance": "0xffffffffffffee323c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "075-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f": {
+ "105-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9842,19 +13774,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d7f6f0b55e0eab69debdd6def62cc671474d373a6617e580dde7269dec36f1f3a0e7293df226ef54ddd0de0317c08989572f4cfb06088a69300a49e2f79cc83d99a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c001a07764a7c1c60477b83cf850029ebc6b3e7f485cb03ba1fd4567cf40faad1ab812a04ccc26eff80bacc4c79ff9a211f845cfa497f29dae82df03526e0f9f5a691819c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb7c1d8b594b5c62fd497fe489d8b3808efc3294a5a101363489ead2121ab770a0f7558ca8cf2279f3f64f58b68d8879c34c03f47e0bdf8710c253895c13d2bdb2a07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc080a01eefeb086ce3a73da67a33e695123e344dc7e163298449e1c69b8aed82aca06ca07a7cc252ee2f6225b89eaa803a04fb9415c1bb70f33dace2a78b0c4740bf46b9c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd7f6f0b55e0eab69debdd6def62cc671474d373a6617e580dde7269dec36f1f3",
- "transactionsTrie": "0xe7293df226ef54ddd0de0317c08989572f4cfb06088a69300a49e2f79cc83d99",
- "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25",
+ "stateRoot": "0xbb7c1d8b594b5c62fd497fe489d8b3808efc3294a5a101363489ead2121ab770",
+ "transactionsTrie": "0xf7558ca8cf2279f3f64f58b68d8879c34c03f47e0bdf8710c253895c13d2bdb2",
+ "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b36",
+ "gasUsed": "0x028b06",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9864,7 +13796,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x387649b3c796e8a71620e8e77227e502ca3a99cbdae775d25047dcf969f2484b"
+ "hash": "0x1eb35fa0ddbceff197df41c9e082ca91537fe36ba4f60b3d9647bef6cbfabbbc"
},
"blocknumber": "1",
"transactions": [
@@ -9877,11 +13809,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98",
+ "data": "0x018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f",
"accessList": [],
- "v": "0x01",
- "r": "0x7764a7c1c60477b83cf850029ebc6b3e7f485cb03ba1fd4567cf40faad1ab812",
- "s": "0x4ccc26eff80bacc4c79ff9a211f845cfa497f29dae82df03526e0f9f5a691819",
+ "v": "0x00",
+ "r": "0x1eefeb086ce3a73da67a33e695123e344dc7e163298449e1c69b8aed82aca06c",
+ "s": "0x7a7cc252ee2f6225b89eaa803a04fb9415c1bb70f33dace2a78b0c4740bf46b9",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -9889,7 +13821,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x387649b3c796e8a71620e8e77227e502ca3a99cbdae775d25047dcf969f2484b",
+ "lastblockhash": "0x1eb35fa0ddbceff197df41c9e082ca91537fe36ba4f60b3d9647bef6cbfabbbc",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -9932,16 +13864,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3186",
+ "balance": "0xffffffffffffee32d6",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "076-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_1b44e341d56c757d": {
+ "106-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_1b44e341d56c757d": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -9972,19 +13904,19 @@
},
"blocks": [
{
- "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b4a773ff9690d864a6afbe33a0d92bf6381bf42a2a3ed05eb35e30f3d94e89d8a0942f894330e0bca68d52778b6da6b110862cf8b8cfd85b31abc75b25f7116402a07f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6c001a065f3012afb7309499eeb850a79f9ea635e95d07821de949196c9d6b58e627e6da07d95c2f04aff352b21f153822599c16433b3d87b2923f7ca9a3ec8fda2081b66c0c0",
+ "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6d33a5398cbb9932d2e73230b8144bf1087033c183ba8bf38842c60a11c5290a0ffd7e24d10f745e4c48c7c70033a1705e03009d8f5596148b0de90f8dd1eb63fa0c1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028af60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6c080a017813aa62b80c27cd952a17be997859c348e8e890d18bb368c2f82c49dcb4f63a0051500541bde044f64d28f4ae91b9f3d0325c691544d82f626c229787aa2d11dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xb4a773ff9690d864a6afbe33a0d92bf6381bf42a2a3ed05eb35e30f3d94e89d8",
- "transactionsTrie": "0x942f894330e0bca68d52778b6da6b110862cf8b8cfd85b31abc75b25f7116402",
- "receiptTrie": "0x7f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69e",
+ "stateRoot": "0xa6d33a5398cbb9932d2e73230b8144bf1087033c183ba8bf38842c60a11c5290",
+ "transactionsTrie": "0xffd7e24d10f745e4c48c7c70033a1705e03009d8f5596148b0de90f8dd1eb63f",
+ "receiptTrie": "0xc1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b32",
+ "gasUsed": "0x028af6",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -9994,7 +13926,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x7bbf02ec74dc803b2a7740e3b3e13fbbf9b2c2be7900adb659e94a1f74aecb62"
+ "hash": "0xbd42c194c69fba8b175c40a4c916f843c83c36d77463c460eef41456045a2392"
},
"blocknumber": "1",
"transactions": [
@@ -10007,11 +13939,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6",
"accessList": [],
- "v": "0x01",
- "r": "0x65f3012afb7309499eeb850a79f9ea635e95d07821de949196c9d6b58e627e6d",
- "s": "0x7d95c2f04aff352b21f153822599c16433b3d87b2923f7ca9a3ec8fda2081b66",
+ "v": "0x00",
+ "r": "0x17813aa62b80c27cd952a17be997859c348e8e890d18bb368c2f82c49dcb4f63",
+ "s": "0x051500541bde044f64d28f4ae91b9f3d0325c691544d82f626c229787aa2d11d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10019,7 +13951,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x7bbf02ec74dc803b2a7740e3b3e13fbbf9b2c2be7900adb659e94a1f74aecb62",
+ "lastblockhash": "0xbd42c194c69fba8b175c40a4c916f843c83c36d77463c460eef41456045a2392",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10046,9 +13978,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x02": "0x01",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x05": "0x01"
}
},
@@ -10062,16 +13994,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee31a2",
+ "balance": "0xffffffffffffee3346",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "077-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91": {
+ "107-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -10102,19 +14034,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10a088cbdc065ade663e7abe3fd45a68e7a0941adc8e89b3efb52cfe01055aa5ac45a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefc080a0bf5dad24779b4c2c21a143ab883d45d48a43395d28277d08187eac28c7865c27a048bb7af5890eef08f89c8ab0148782ad1912c378c753eaeb83faebcfc98c688dc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda009086253b6b3042c79539042cc75abd9fb7f656b46968aeb61ca8c4719f9d81fa07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefc001a015b443da028c2adb70611098109931334e0381651779d7bbcf37e8b2338c61fda005d5efd2e84f1ef34eb7d274ac98f776b148aeed7ff9deb53c2ec882644c4b9dc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x07e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10",
- "transactionsTrie": "0x88cbdc065ade663e7abe3fd45a68e7a0941adc8e89b3efb52cfe01055aa5ac45",
- "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed",
+ "transactionsTrie": "0x09086253b6b3042c79539042cc75abd9fb7f656b46968aeb61ca8c4719f9d81f",
+ "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b42",
+ "gasUsed": "0x028b06",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -10124,7 +14056,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x4ae60369e6041e6dbf09b6cab620642d802236884ecb1317bc56d7d7444380f6"
+ "hash": "0x6e5d6adfef9a7730731528af2f8cb49446345ee8962c5b656318d0f240b2c505"
},
"blocknumber": "1",
"transactions": [
@@ -10137,11 +14069,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"accessList": [],
- "v": "0x00",
- "r": "0xbf5dad24779b4c2c21a143ab883d45d48a43395d28277d08187eac28c7865c27",
- "s": "0x48bb7af5890eef08f89c8ab0148782ad1912c378c753eaeb83faebcfc98c688d",
+ "v": "0x01",
+ "r": "0x15b443da028c2adb70611098109931334e0381651779d7bbcf37e8b2338c61fd",
+ "s": "0x05d5efd2e84f1ef34eb7d274ac98f776b148aeed7ff9deb53c2ec882644c4b9d",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10149,7 +14081,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x4ae60369e6041e6dbf09b6cab620642d802236884ecb1317bc56d7d7444380f6",
+ "lastblockhash": "0x6e5d6adfef9a7730731528af2f8cb49446345ee8962c5b656318d0f240b2c505",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10176,9 +14108,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x02": "0x01",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x05": "0x01"
}
},
@@ -10192,16 +14124,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3132",
+ "balance": "0xffffffffffffee32d6",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "078-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757": {
+ "108-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -10232,19 +14164,19 @@
},
"blocks": [
{
- "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0757f98ba7b402e6c17e85b1efe4a4560eaf65ffac14533e16fd979531ba910c0a08fd44fa846ea5b5c834aac3739dd842a292bd2bed917647d91a7fdda788aa7d6a048644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b4c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00c001a021ff2b920a0c742023c10012b04ae4a42e3e05753800e056abb1d8cd6fc80075a036c2ab5bdd41ac63d46958e702905b4bd4acbe371a6e3aacab2c70e0e3f7ef32c0c0",
+ "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e51f6dd5f43d5eea7153454f10c98fbc705c7d55918089253e48d0147d796822a08429e8a6afc252f564f916c76ba29736df5a63c58d06255903d089b489c7a7bba0482ae97d122ee408fa6d344a6a7c7bd19c4ec4d35666ba16e464647e1ad761e6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c1014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00c080a003404d5cd90d535980899a8600e2d790d2979e41495ec835f76f8e1b2e1b78d4a007e322fddc46f21a63bf3e9dacfba8352de83ed54f285d6e0e4de81c1c1677afc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x757f98ba7b402e6c17e85b1efe4a4560eaf65ffac14533e16fd979531ba910c0",
- "transactionsTrie": "0x8fd44fa846ea5b5c834aac3739dd842a292bd2bed917647d91a7fdda788aa7d6",
- "receiptTrie": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435",
+ "stateRoot": "0xe51f6dd5f43d5eea7153454f10c98fbc705c7d55918089253e48d0147d796822",
+ "transactionsTrie": "0x8429e8a6afc252f564f916c76ba29736df5a63c58d06255903d089b489c7a7bb",
+ "receiptTrie": "0x482ae97d122ee408fa6d344a6a7c7bd19c4ec4d35666ba16e464647e1ad761e6",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b4c",
+ "gasUsed": "0x028b10",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -10254,7 +14186,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xcbdb3a92259fd164f683aaebc63565065e281aece4e03cd073cf41adcf3de8ae"
+ "hash": "0x03503a9631c9d4a73eb4fb2afddb8daf6bc6122b4a4e80de11c25068d10479e2"
},
"blocknumber": "1",
"transactions": [
@@ -10267,11 +14199,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00",
"accessList": [],
- "v": "0x01",
- "r": "0x21ff2b920a0c742023c10012b04ae4a42e3e05753800e056abb1d8cd6fc80075",
- "s": "0x36c2ab5bdd41ac63d46958e702905b4bd4acbe371a6e3aacab2c70e0e3f7ef32",
+ "v": "0x00",
+ "r": "0x03404d5cd90d535980899a8600e2d790d2979e41495ec835f76f8e1b2e1b78d4",
+ "s": "0x07e322fddc46f21a63bf3e9dacfba8352de83ed54f285d6e0e4de81c1c1677af",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10279,7 +14211,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xcbdb3a92259fd164f683aaebc63565065e281aece4e03cd073cf41adcf3de8ae",
+ "lastblockhash": "0x03503a9631c9d4a73eb4fb2afddb8daf6bc6122b4a4e80de11c25068d10479e2",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10306,9 +14238,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x02": "0x01",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x05": "0x01"
}
},
@@ -10322,16 +14254,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee30ec",
+ "balance": "0xffffffffffffee3290",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "079-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f": {
+ "109-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -10362,19 +14294,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10a01ee0ff90b680c2bb4a8543e932aff78751274a76bfc975075e9f7b854217616ea00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0c001a047a5f4eedceccff6d22babd288f2bd7b88a8706d0443922de36d18a0e101a455a0751037d311c5ef23bfbec3d5a190302606f8f46c8a7b090eade43df0ad3d5dc6c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda087991902b14e10548cc81b439568dcabfb07ab3503006f307d2b37c67b2e351fa07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0c080a03bc1cc3bc8adf06382c674e21088065fb34b3c134fba846ba64af7fc67bd936ea0576d774a37747222e60058b3189cdd979d9400ffba80b82ae2cf86702f1e82bec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x07e7ee5bdc40dd867afc65eb488fb609f8431800c2ab7e393d1e7116e7f82f10",
- "transactionsTrie": "0x1ee0ff90b680c2bb4a8543e932aff78751274a76bfc975075e9f7b854217616e",
- "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
+ "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed",
+ "transactionsTrie": "0x87991902b14e10548cc81b439568dcabfb07ab3503006f307d2b37c67b2e351f",
+ "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028b42",
+ "gasUsed": "0x028b06",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -10384,7 +14316,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x21cebb35146b0f93bcb29a546d068804a63f890a25920bc42c6e8dfe63d2ea90"
+ "hash": "0x9cbd3d371f2acd8eec9a21670ed9845fe38c3be3f75a30276c4ce71cf8ef9b61"
},
"blocknumber": "1",
"transactions": [
@@ -10397,11 +14329,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0",
+ "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0",
"accessList": [],
- "v": "0x01",
- "r": "0x47a5f4eedceccff6d22babd288f2bd7b88a8706d0443922de36d18a0e101a455",
- "s": "0x751037d311c5ef23bfbec3d5a190302606f8f46c8a7b090eade43df0ad3d5dc6",
+ "v": "0x00",
+ "r": "0x3bc1cc3bc8adf06382c674e21088065fb34b3c134fba846ba64af7fc67bd936e",
+ "s": "0x576d774a37747222e60058b3189cdd979d9400ffba80b82ae2cf86702f1e82be",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10409,7 +14341,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x21cebb35146b0f93bcb29a546d068804a63f890a25920bc42c6e8dfe63d2ea90",
+ "lastblockhash": "0x9cbd3d371f2acd8eec9a21670ed9845fe38c3be3f75a30276c4ce71cf8ef9b61",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10436,9 +14368,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x02": "0x01",
- "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9",
+ "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1",
"0x05": "0x01"
}
},
@@ -10452,16 +14384,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3132",
+ "balance": "0xffffffffffffee32d6",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "080-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_35d08d612aad2197": {
+ "110-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_35d08d612aad2197": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -10492,19 +14424,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034182c35645b326e4d5b1f0097027a46f7b550c7d9eb63d6664831338f44ba2fa0766d2c1305fd9773facf097e8d03c63f82ca5e8b041df3e7c28d60f67cc35195a0cd67bcbc48561ef61154deee19760b5f235e5e6872027213a26ed4a9864120a8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302890e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cfbbfe701ca149cc6682901c7b33fc2d29fb210e9765a45842f5b9be5464b54ba07a3c681c61f6317674151b25b896213bc0920f3a0e0ac594f500418a4b0bdc6ac0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50a0825dd7c94c83edbb277467c453b73c32764b421939786e8948c74ae867299671a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0a4f488f6e5fd10cb45f6c6b90ab7fe3916250abc154d49773cd149c5f0dd3104a0343ebe85ec87372a0955fef79e6eed97cb8eeb9a4db7447d7c6f14dc76292844c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x34182c35645b326e4d5b1f0097027a46f7b550c7d9eb63d6664831338f44ba2f",
- "transactionsTrie": "0x766d2c1305fd9773facf097e8d03c63f82ca5e8b041df3e7c28d60f67cc35195",
- "receiptTrie": "0xcd67bcbc48561ef61154deee19760b5f235e5e6872027213a26ed4a9864120a8",
+ "stateRoot": "0x80463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50",
+ "transactionsTrie": "0x825dd7c94c83edbb277467c453b73c32764b421939786e8948c74ae867299671",
+ "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x02890e",
+ "gasUsed": "0x028b42",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -10514,7 +14446,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xba92df53b9a4f585de643c996b1b896980f5ced8ab5c209fd2f0727592378514"
+ "hash": "0x973e09227b5ecc812f91d74b589656431aff640dd6a654afa0210dfed664a518"
},
"blocknumber": "1",
"transactions": [
@@ -10527,11 +14459,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
"v": "0x00",
- "r": "0xcfbbfe701ca149cc6682901c7b33fc2d29fb210e9765a45842f5b9be5464b54b",
- "s": "0x7a3c681c61f6317674151b25b896213bc0920f3a0e0ac594f500418a4b0bdc6a",
+ "r": "0xa4f488f6e5fd10cb45f6c6b90ab7fe3916250abc154d49773cd149c5f0dd3104",
+ "s": "0x343ebe85ec87372a0955fef79e6eed97cb8eeb9a4db7447d7c6f14dc76292844",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10539,7 +14471,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xba92df53b9a4f585de643c996b1b896980f5ced8ab5c209fd2f0727592378514",
+ "lastblockhash": "0x973e09227b5ecc812f91d74b589656431aff640dd6a654afa0210dfed664a518",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10566,9 +14498,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x01",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x01"
}
},
@@ -10582,16 +14514,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee409e",
+ "balance": "0xffffffffffffee3132",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "081-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4aa6def8c35c9097": {
+ "111-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4aa6def8c35c9097": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -10622,19 +14554,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06f536854380dd7739c55d2edd79c125747a312f254c8bfb5161904c88c6a89a9a05d4fd5903a2c80d6bf91a564fda4d31eaedf6e07ec443651f8e81a54ba3b1b4aa074136951726d9667071586badffebfa570056916bf1742d12ebef020ba802e5db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302884e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff00000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0942ab28d33abdfd19b27c49cd4f6eb1293be43fc9fa34f640680e2f7073eac51a051804ba32b1fe8dcd50404c5aa6f2a73af77e4a36aa96be8ed8965f4cb138accc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cf71ca1737d1aca03b5eff379c64f2bf212579bdf6f41c3d9b19337922af674ba0390287c85cc4c317ed57fd7f00e2014ba3a35c22a5110f58532c7e6ba11a0df9a01578743dc146433d0030a044a723cf642603b53cbf0eac3c9f78683d628b6edab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a820c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0abcf44b44b8dc5d10c1e8430d7dab45c471441db6f911375aa46f4659b501a10a018a1cc01f862937d428dc3c9beae20df73704707db38402ddf61bb3e41a69b86c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x6f536854380dd7739c55d2edd79c125747a312f254c8bfb5161904c88c6a89a9",
- "transactionsTrie": "0x5d4fd5903a2c80d6bf91a564fda4d31eaedf6e07ec443651f8e81a54ba3b1b4a",
- "receiptTrie": "0x74136951726d9667071586badffebfa570056916bf1742d12ebef020ba802e5d",
+ "stateRoot": "0xcf71ca1737d1aca03b5eff379c64f2bf212579bdf6f41c3d9b19337922af674b",
+ "transactionsTrie": "0x390287c85cc4c317ed57fd7f00e2014ba3a35c22a5110f58532c7e6ba11a0df9",
+ "receiptTrie": "0x1578743dc146433d0030a044a723cf642603b53cbf0eac3c9f78683d628b6eda",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x02884e",
+ "gasUsed": "0x028a82",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -10644,7 +14576,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xcd99af606c7b59ae089d79443d3cba63e516f854c133f52c31ec4676ebd4d60d"
+ "hash": "0x7633f15489df6a95a86ebe4fb833f85ea9a3cf18980087487ed93a2681194426"
},
"blocknumber": "1",
"transactions": [
@@ -10657,11 +14589,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff00000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
"v": "0x00",
- "r": "0x942ab28d33abdfd19b27c49cd4f6eb1293be43fc9fa34f640680e2f7073eac51",
- "s": "0x51804ba32b1fe8dcd50404c5aa6f2a73af77e4a36aa96be8ed8965f4cb138acc",
+ "r": "0xabcf44b44b8dc5d10c1e8430d7dab45c471441db6f911375aa46f4659b501a10",
+ "s": "0x18a1cc01f862937d428dc3c9beae20df73704707db38402ddf61bb3e41a69b86",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10669,7 +14601,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xcd99af606c7b59ae089d79443d3cba63e516f854c133f52c31ec4676ebd4d60d",
+ "lastblockhash": "0x7633f15489df6a95a86ebe4fb833f85ea9a3cf18980087487ed93a2681194426",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10696,9 +14628,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x01",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x01"
}
},
@@ -10712,16 +14644,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee45de",
+ "balance": "0xffffffffffffee3672",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "082-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4e51cef08a61606f": {
+ "112-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4e51cef08a61606f": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -10752,19 +14684,19 @@
},
"blocks": [
{
- "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa023a7a27f608e59a2629f80716f7c45a19bf559fa8269e73dfe3c8cb253082de8a065dab34cb029302e875546e57ca96c3bddee252bd215772c58cb24fd71feafcca053e6fe058037ac206e18bb802401c083db816f4226ad8e57410dae375aab4e50b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e30b91ed2373b3635ef68da180c0b80afe4158e57b0441e3d0da4945d6b20ef9a026ea853b7c0850fc3b126be4c20b441215cb8ee94954a705721a4405e7608910c0c0",
+ "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03879ff5b91815d383e3055ded5bb3b83f276716e6686e53a8ce16ca5d2f073cda07ac705a4ed201c330fb12e25758f551ff34a41e78a8155cff166a9b521742577a0f7c0e1bfbd82446f912d1cf2a191b0abca1de667d6182506064ef4260e628c47b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a077aaa6cfca256af621f2eac99b5047e388188cfd5e82fc29021aadd9829048f9a0250a53ca94c6c886026606d517ff0f1df062e6cb34f5fb5659cf994be1c0d213c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x23a7a27f608e59a2629f80716f7c45a19bf559fa8269e73dfe3c8cb253082de8",
- "transactionsTrie": "0x65dab34cb029302e875546e57ca96c3bddee252bd215772c58cb24fd71feafcc",
- "receiptTrie": "0x53e6fe058037ac206e18bb802401c083db816f4226ad8e57410dae375aab4e50",
+ "stateRoot": "0x3879ff5b91815d383e3055ded5bb3b83f276716e6686e53a8ce16ca5d2f073cd",
+ "transactionsTrie": "0x7ac705a4ed201c330fb12e25758f551ff34a41e78a8155cff166a9b521742577",
+ "receiptTrie": "0xf7c0e1bfbd82446f912d1cf2a191b0abca1de667d6182506064ef4260e628c47",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x02878a",
+ "gasUsed": "0x0289be",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -10774,7 +14706,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x7a66efa56520c6ec41340b5a88d5becf27ac56d3e697d42ccc7ec7ffc5029a45"
+ "hash": "0x55fc1cd0ebf111ab1c7f7af4ba0119c31bc69e514c05aa2a00b5c2b41cdeaf59"
},
"blocknumber": "1",
"transactions": [
@@ -10787,11 +14719,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
"v": "0x01",
- "r": "0xe30b91ed2373b3635ef68da180c0b80afe4158e57b0441e3d0da4945d6b20ef9",
- "s": "0x26ea853b7c0850fc3b126be4c20b441215cb8ee94954a705721a4405e7608910",
+ "r": "0x77aaa6cfca256af621f2eac99b5047e388188cfd5e82fc29021aadd9829048f9",
+ "s": "0x250a53ca94c6c886026606d517ff0f1df062e6cb34f5fb5659cf994be1c0d213",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10799,7 +14731,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x7a66efa56520c6ec41340b5a88d5becf27ac56d3e697d42ccc7ec7ffc5029a45",
+ "lastblockhash": "0x55fc1cd0ebf111ab1c7f7af4ba0119c31bc69e514c05aa2a00b5c2b41cdeaf59",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10826,9 +14758,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x01",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x01"
}
},
@@ -10842,16 +14774,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee4b3a",
+ "balance": "0xffffffffffffee3bce",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "083-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee": {
+ "113-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -10882,19 +14814,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5a01b614f0b09a6680c33d082a10e0db3671e14d0e5f407141d8b65ec14d2f1afa4a0f97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ea0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0a92919408464945f4fa428f9f871923392b52cd22201025e26204a85f4193be1a07917f522774ceb1a157691e2812ad5033ae174671ce62514eff277b1ae5b29b8c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28a0332cde0d984c44e6833e4aa5c4e004560828fff4e68539cf86a9f721090eae2fa0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000028f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0b00a7cf98776dca380782d67b08492ed25d0db5c382a0e496f38f781082b4b05a0266ecd5062bf26f227a7a80e441e593629d0f373a074e41d5b451103d6ba0b0ec0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xe69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5",
- "transactionsTrie": "0x1b614f0b09a6680c33d082a10e0db3671e14d0e5f407141d8b65ec14d2f1afa4",
- "receiptTrie": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0",
+ "stateRoot": "0x607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28",
+ "transactionsTrie": "0x332cde0d984c44e6833e4aa5c4e004560828fff4e68539cf86a9f721090eae2f",
+ "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0288ea",
+ "gasUsed": "0x028b1e",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -10904,7 +14836,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xecff40d573001e90148a7464e381bc2c7c47aef98c9dabca68a36ba4523aff00"
+ "hash": "0x1e0046d5a628fa96400e3aef310613c0d044d79b3bbff3818fce9c6294e3cea6"
},
"blocknumber": "1",
"transactions": [
@@ -10917,11 +14849,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000028f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
- "v": "0x00",
- "r": "0xa92919408464945f4fa428f9f871923392b52cd22201025e26204a85f4193be1",
- "s": "0x7917f522774ceb1a157691e2812ad5033ae174671ce62514eff277b1ae5b29b8",
+ "v": "0x01",
+ "r": "0xb00a7cf98776dca380782d67b08492ed25d0db5c382a0e496f38f781082b4b05",
+ "s": "0x266ecd5062bf26f227a7a80e441e593629d0f373a074e41d5b451103d6ba0b0e",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -10929,7 +14861,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xecff40d573001e90148a7464e381bc2c7c47aef98c9dabca68a36ba4523aff00",
+ "lastblockhash": "0x1e0046d5a628fa96400e3aef310613c0d044d79b3bbff3818fce9c6294e3cea6",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -10956,9 +14888,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x01",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x01"
}
},
@@ -10972,16 +14904,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee419a",
+ "balance": "0xffffffffffffee322e",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "084-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_b358a2e763727b70": {
+ "114-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_b358a2e763727b70": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11012,19 +14944,19 @@
},
"blocks": [
{
- "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0943595a959ae0d0e39482e14976a0a81b7df1cf1cd6a7fbf20a431cc34700fe1a0255ad6f490f8c0a961b2b9769587c8dd330acbbfe52cf241fd647469abb65123a096e82396cb26c037436eb490f9afce540c053a724cf6baa0f311afcbbb237e0db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830287980c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0051ca0c4065fb5e81eba35abe4e22f15e972d1c0b3504ebab90de705bf67b80ca07e534a598742636a3e139b6a50a80f4f7532a45bef0bf6cc5addc97ae40d164ec0c0",
+ "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05cfd0a413cdd4db8087671ad9544967f07640f8406a0bc36523a1bfd4cd6827fa093ae44f7eb6de35ab5cec65e3d687c5a9ef1d0f99c15bb2853307aaf31ddbceea017703851fb93a6fada8e626927d5235096f7cdd7f463b362770cde38a98957fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a083d661d39d4f15825f4c1dee4103464fc0629b3049dc4670ba8f0d5ccdb8342ca07836a664ad89f040e458020c7abbfe427d160b0525f761bbe260982120ec4052c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x943595a959ae0d0e39482e14976a0a81b7df1cf1cd6a7fbf20a431cc34700fe1",
- "transactionsTrie": "0x255ad6f490f8c0a961b2b9769587c8dd330acbbfe52cf241fd647469abb65123",
- "receiptTrie": "0x96e82396cb26c037436eb490f9afce540c053a724cf6baa0f311afcbbb237e0d",
+ "stateRoot": "0x5cfd0a413cdd4db8087671ad9544967f07640f8406a0bc36523a1bfd4cd6827f",
+ "transactionsTrie": "0x93ae44f7eb6de35ab5cec65e3d687c5a9ef1d0f99c15bb2853307aaf31ddbcee",
+ "receiptTrie": "0x17703851fb93a6fada8e626927d5235096f7cdd7f463b362770cde38a98957fd",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028798",
+ "gasUsed": "0x0289cc",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11034,7 +14966,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x3ac4479ca315cbcb68c7121e534a13f83d4b2aebc38d1ea68973b34e3b5eed1a"
+ "hash": "0x458f520c98ce65310e09122e2f0d32ea3c4699dfd1e4fadc1e7d0f6db9287c6d"
},
"blocknumber": "1",
"transactions": [
@@ -11047,11 +14979,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
"v": "0x01",
- "r": "0x051ca0c4065fb5e81eba35abe4e22f15e972d1c0b3504ebab90de705bf67b80c",
- "s": "0x7e534a598742636a3e139b6a50a80f4f7532a45bef0bf6cc5addc97ae40d164e",
+ "r": "0x83d661d39d4f15825f4c1dee4103464fc0629b3049dc4670ba8f0d5ccdb8342c",
+ "s": "0x7836a664ad89f040e458020c7abbfe427d160b0525f761bbe260982120ec4052",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11059,7 +14991,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x3ac4479ca315cbcb68c7121e534a13f83d4b2aebc38d1ea68973b34e3b5eed1a",
+ "lastblockhash": "0x458f520c98ce65310e09122e2f0d32ea3c4699dfd1e4fadc1e7d0f6db9287c6d",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11086,9 +15018,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x01",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x01"
}
},
@@ -11102,16 +15034,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee4ad8",
+ "balance": "0xffffffffffffee3b6c",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "085-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9": {
+ "115-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11142,19 +15074,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5a0594edb0e8f2dabb7d50259c8a1cb4dc0b8abd406a540682f183c141bf75fd224a0f97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ea0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0c738f3ecb4e88dcd129c914104bbb6ad1148f39118260c088e9a5532e0366673a05992f2aa41bf35a8000c0b5e6e8f43e3398550a8d0e866df3154b6583b7ff3f7c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28a08b69bc324283550bef097396958b348fbe045daf8f10e08e050e6be2b089549aa0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a04b6b9296b206e24b67ddf2901fdc1892d450b5006bfbded2b5319759a3a72b4fa060b25b41af14e878c6ef9e3cc1b2b7f61820047c4185e4fbf5c3d9b652a07641c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xe69bffbc8446aefcdf682f92fe76a3a2848c9a6af46b1ef98f5e967527572af5",
- "transactionsTrie": "0x594edb0e8f2dabb7d50259c8a1cb4dc0b8abd406a540682f183c141bf75fd224",
- "receiptTrie": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0",
+ "stateRoot": "0x607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28",
+ "transactionsTrie": "0x8b69bc324283550bef097396958b348fbe045daf8f10e08e050e6be2b089549a",
+ "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0288ea",
+ "gasUsed": "0x028b1e",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11164,7 +15096,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xd0e445ea732ed1d7f549a59f8e11964fda88415d27aba5dd51f9bb07aa73774a"
+ "hash": "0x02407bcca980c43ba172d4fc38b0a13fd411c6609ae1a5aeb00814efa0f0dd7e"
},
"blocknumber": "1",
"transactions": [
@@ -11177,11 +15109,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
"v": "0x01",
- "r": "0xc738f3ecb4e88dcd129c914104bbb6ad1148f39118260c088e9a5532e0366673",
- "s": "0x5992f2aa41bf35a8000c0b5e6e8f43e3398550a8d0e866df3154b6583b7ff3f7",
+ "r": "0x4b6b9296b206e24b67ddf2901fdc1892d450b5006bfbded2b5319759a3a72b4f",
+ "s": "0x60b25b41af14e878c6ef9e3cc1b2b7f61820047c4185e4fbf5c3d9b652a07641",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11189,7 +15121,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xd0e445ea732ed1d7f549a59f8e11964fda88415d27aba5dd51f9bb07aa73774a",
+ "lastblockhash": "0x02407bcca980c43ba172d4fc38b0a13fd411c6609ae1a5aeb00814efa0f0dd7e",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11216,9 +15148,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x01",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x01"
}
},
@@ -11232,16 +15164,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee419a",
+ "balance": "0xffffffffffffee322e",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "086-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_35d08d612aad2197": {
+ "116-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_35d08d612aad2197": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11272,19 +15204,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02c417b818b0e2db26fc1daff3a25a4f5bff141c3db1844a55cd56baf15c83415a05ca3f5cec2142aca5d19dafdb37b94a24400525daed5f6031ee1c419180baf18a0b8173593abf172b0effa2ae8199eec3ba80ea8126d4b220a5e847b18b0bd5ef2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a520c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a08c1986e01288994845715251b1b7b4dac41d9ba7eb0619c9143b1743f68e4af5a06a17c79af57196c8285cc52da57e068ba39724db02910692919ded9690d655c3c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0637aa2f5082dbba51b84384c92da7f556fb9e062fa8425ab637ca6c1b28f314aa0017a2907b7e8ebf33b4ac0f85b148adb6a0be9ee18fb4dd7d915abd92d6e6d46a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a03aebd07c5040166d3a73f53a6ba1e350144f6ecc5931a0b89308da57d4dc8a49a039cabde8293a6f0643a2e90b0165c066eccba206b6e1b5000160e80f3a7c4decc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x2c417b818b0e2db26fc1daff3a25a4f5bff141c3db1844a55cd56baf15c83415",
- "transactionsTrie": "0x5ca3f5cec2142aca5d19dafdb37b94a24400525daed5f6031ee1c419180baf18",
- "receiptTrie": "0xb8173593abf172b0effa2ae8199eec3ba80ea8126d4b220a5e847b18b0bd5ef2",
+ "stateRoot": "0x637aa2f5082dbba51b84384c92da7f556fb9e062fa8425ab637ca6c1b28f314a",
+ "transactionsTrie": "0x017a2907b7e8ebf33b4ac0f85b148adb6a0be9ee18fb4dd7d915abd92d6e6d46",
+ "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028a52",
+ "gasUsed": "0x028cb6",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11294,7 +15226,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0xe9a28a9dc91f0e8032fd8cc83810c42bece2d17ee1018f8a2b5d90133edc3406"
+ "hash": "0xee00f1169478c7105fc5d5bad6d9aaf0c965d0e90c43b1ab061aee80c08abedf"
},
"blocknumber": "1",
"transactions": [
@@ -11307,11 +15239,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
- "v": "0x01",
- "r": "0x8c1986e01288994845715251b1b7b4dac41d9ba7eb0619c9143b1743f68e4af5",
- "s": "0x6a17c79af57196c8285cc52da57e068ba39724db02910692919ded9690d655c3",
+ "v": "0x00",
+ "r": "0x3aebd07c5040166d3a73f53a6ba1e350144f6ecc5931a0b89308da57d4dc8a49",
+ "s": "0x39cabde8293a6f0643a2e90b0165c066eccba206b6e1b5000160e80f3a7c4dec",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11319,7 +15251,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0xe9a28a9dc91f0e8032fd8cc83810c42bece2d17ee1018f8a2b5d90133edc3406",
+ "lastblockhash": "0xee00f1169478c7105fc5d5bad6d9aaf0c965d0e90c43b1ab061aee80c08abedf",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11346,9 +15278,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
},
@@ -11362,16 +15294,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee37c2",
+ "balance": "0xffffffffffffee2706",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "087-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4aa6def8c35c9097": {
+ "117-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4aa6def8c35c9097": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11402,19 +15334,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dab4dfd445626b49dff1c06829f9906f5f19cd26d77c20099d5034d92f237233a0b1cd8b1a03cd886cb84a9d797f047314a59c04f5838091181e92dce560098464a098d9a33413478e62bb734c7983392a3e48eaa8c8ce97de39c2b575e2fdaece66b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffff0000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0b29c6647053a7e8584a8eba50d63d581c8ee115be69e96a955f63a532ecd4a71a02761c8808125c2a9a5daa99416fe3b7a613e6256ca8ef1b8b9b639205f744638c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00600ccad6edf4943407456f7b1b25c3a5cd14a1e54fc2f5d6511a9b12c080036a066207d11917d7a1e0c535fb4b40afa3161907a56dd8be2381bf90ab8b31478e6a0baab03e120fbd6154d0d7e52a3d4d42c290ad7b221a14c30651834e4d727d08bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028bf60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffff0000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a04859e01fa2588cfd8b5faeebb1d6d0b07ea41da182f1d2414e29d94ee646c442a06469561adbcefb90fb397c819b2ee2981190fe35de675b9c9bff935a54f722c2c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xdab4dfd445626b49dff1c06829f9906f5f19cd26d77c20099d5034d92f237233",
- "transactionsTrie": "0xb1cd8b1a03cd886cb84a9d797f047314a59c04f5838091181e92dce560098464",
- "receiptTrie": "0x98d9a33413478e62bb734c7983392a3e48eaa8c8ce97de39c2b575e2fdaece66",
+ "stateRoot": "0x0600ccad6edf4943407456f7b1b25c3a5cd14a1e54fc2f5d6511a9b12c080036",
+ "transactionsTrie": "0x66207d11917d7a1e0c535fb4b40afa3161907a56dd8be2381bf90ab8b31478e6",
+ "receiptTrie": "0xbaab03e120fbd6154d0d7e52a3d4d42c290ad7b221a14c30651834e4d727d08b",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028992",
+ "gasUsed": "0x028bf6",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11424,7 +15356,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x934ae6cc24826360d9634792120d9eceac67aad32ef6b50aa933b5ed7f2510a4"
+ "hash": "0x33c644ca641428422b7838e6bb141a1c6ad3748561793856b92b28ddc1d60d8b"
},
"blocknumber": "1",
"transactions": [
@@ -11437,11 +15369,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffff0000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffff0000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
"v": "0x00",
- "r": "0xb29c6647053a7e8584a8eba50d63d581c8ee115be69e96a955f63a532ecd4a71",
- "s": "0x2761c8808125c2a9a5daa99416fe3b7a613e6256ca8ef1b8b9b639205f744638",
+ "r": "0x4859e01fa2588cfd8b5faeebb1d6d0b07ea41da182f1d2414e29d94ee646c442",
+ "s": "0x6469561adbcefb90fb397c819b2ee2981190fe35de675b9c9bff935a54f722c2",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11449,7 +15381,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x934ae6cc24826360d9634792120d9eceac67aad32ef6b50aa933b5ed7f2510a4",
+ "lastblockhash": "0x33c644ca641428422b7838e6bb141a1c6ad3748561793856b92b28ddc1d60d8b",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11476,9 +15408,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0xffffffffffffffffffffffffffffffff00000000000000000000000000000000",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0xffffffffffffffffffffffffffffffff00000000000000000000000000000000"
}
},
@@ -11492,16 +15424,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee3d02",
+ "balance": "0xffffffffffffee2c46",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "088-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4e51cef08a61606f": {
+ "118-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4e51cef08a61606f": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11532,19 +15464,19 @@
},
"blocks": [
{
- "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d3ff6cd74d310207f5b77ff6e1269e994ce9ddc06126cfb81d789cbd7f9b36d8a0fcab93baf6a6f901168c6f3238af1b9fc9dfd51d557443a173c0910e127622e3a00da4273aae3ce52206102e4d18a0acf48a22389212630d9e24e522dbca50feb9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a04e78fd3c252e7a8b6644e07cebf1032aa1cd7700c795cca058da635407870b65a00bdcc6d2ce7e0405989da40e6d60a07508c93e0ddcf7d500d003bbce0391199bc0c0",
+ "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05bf94f733496b99b5f0392c96e0292a5be0de56456843d3ebae0da6231ace610a0f919a850dfff60a9bb847fa9bdfb46abef75efcc88854f5b36b493e285aa1312a07f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0dc92bf5b57d6918c2ecc58bdca8c9e7e5d974202f55f5022d2c3dad0fc8f7ed0a01597763f43fc8db1accfab0f57f0a952bc397f0b55ca95428d9d9cbd3ddff5bdc0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xd3ff6cd74d310207f5b77ff6e1269e994ce9ddc06126cfb81d789cbd7f9b36d8",
- "transactionsTrie": "0xfcab93baf6a6f901168c6f3238af1b9fc9dfd51d557443a173c0910e127622e3",
- "receiptTrie": "0x0da4273aae3ce52206102e4d18a0acf48a22389212630d9e24e522dbca50feb9",
+ "stateRoot": "0x5bf94f733496b99b5f0392c96e0292a5be0de56456843d3ebae0da6231ace610",
+ "transactionsTrie": "0xf919a850dfff60a9bb847fa9bdfb46abef75efcc88854f5b36b493e285aa1312",
+ "receiptTrie": "0x7f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69e",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x0288ce",
+ "gasUsed": "0x028b32",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11554,7 +15486,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x75169d94fa394fc09ce1a74c7d7389697cbe98cfadb2b654cb0a25df2e451409"
+ "hash": "0xae55b53c3c22cdff16f116a8887d8f6c2110bf2ec83d645d9681fcf0589015e7"
},
"blocknumber": "1",
"transactions": [
@@ -11567,11 +15499,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
"v": "0x01",
- "r": "0x4e78fd3c252e7a8b6644e07cebf1032aa1cd7700c795cca058da635407870b65",
- "s": "0x0bdcc6d2ce7e0405989da40e6d60a07508c93e0ddcf7d500d003bbce0391199b",
+ "r": "0xdc92bf5b57d6918c2ecc58bdca8c9e7e5d974202f55f5022d2c3dad0fc8f7ed0",
+ "s": "0x1597763f43fc8db1accfab0f57f0a952bc397f0b55ca95428d9d9cbd3ddff5bd",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11579,7 +15511,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x75169d94fa394fc09ce1a74c7d7389697cbe98cfadb2b654cb0a25df2e451409",
+ "lastblockhash": "0xae55b53c3c22cdff16f116a8887d8f6c2110bf2ec83d645d9681fcf0589015e7",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11606,10 +15538,10 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x02": "0x73",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x05": "0x73"
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x02": "0x60",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x05": "0x60"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -11622,16 +15554,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee425e",
+ "balance": "0xffffffffffffee31a2",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "089-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee": {
+ "119-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11662,19 +15594,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02f757f7cc2744f6e0d671bb30b996b7928e865178095df810d837e53b65b129ca052221f8b620a6000931001e720ee5d605c58c3f7f06202aa124ce700664a0f48a0f75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a2e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a079263655ddf6116b2e408aa31c73c021ea9543147399de7529457ff0d0b22574a03ea1ea2404610dbd0d438d960eaf4fc18a3fff4b25741dda5a2e2dd9c1178a34c0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f502939d8be56f2cdbe6cd0d8eac7307502657015098e6afa6587c4091254a1aa0652e0784ac994e3634165a3acdc2c735028c850d7dc3cb7efe444e8e262af7a6a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000260f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0d2274399a1fc6490f07ef339b35a8cb06c033ab1dd1e435e3197218c3f00169aa06b17e6bfb2b9af401a2401e2aa0075215d56f0c9727b3652edffd4f62dce05d9c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x2f757f7cc2744f6e0d671bb30b996b7928e865178095df810d837e53b65b129c",
- "transactionsTrie": "0x52221f8b620a6000931001e720ee5d605c58c3f7f06202aa124ce700664a0f48",
- "receiptTrie": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a",
+ "stateRoot": "0xf502939d8be56f2cdbe6cd0d8eac7307502657015098e6afa6587c4091254a1a",
+ "transactionsTrie": "0x652e0784ac994e3634165a3acdc2c735028c850d7dc3cb7efe444e8e262af7a6",
+ "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028a2e",
+ "gasUsed": "0x028c92",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11684,7 +15616,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x7b8246ab8b598e1f6c2cc86df964065ec0c489d75efb0f695dabea8b1cd8ef07"
+ "hash": "0x59d95e95bbf0cc7200741751247f28b2b9732ffc0eceac319847072e4ffbb925"
},
"blocknumber": "1",
"transactions": [
@@ -11697,11 +15629,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000260f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
- "v": "0x01",
- "r": "0x79263655ddf6116b2e408aa31c73c021ea9543147399de7529457ff0d0b22574",
- "s": "0x3ea1ea2404610dbd0d438d960eaf4fc18a3fff4b25741dda5a2e2dd9c1178a34",
+ "v": "0x00",
+ "r": "0xd2274399a1fc6490f07ef339b35a8cb06c033ab1dd1e435e3197218c3f00169a",
+ "s": "0x6b17e6bfb2b9af401a2401e2aa0075215d56f0c9727b3652edffd4f62dce05d9",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11709,7 +15641,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x7b8246ab8b598e1f6c2cc86df964065ec0c489d75efb0f695dabea8b1cd8ef07",
+ "lastblockhash": "0x59d95e95bbf0cc7200741751247f28b2b9732ffc0eceac319847072e4ffbb925",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11736,9 +15668,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002"
}
},
@@ -11752,16 +15684,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee38be",
+ "balance": "0xffffffffffffee2802",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "090-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_b358a2e763727b70": {
+ "120-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_b358a2e763727b70": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11792,19 +15724,19 @@
},
"blocks": [
{
- "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a02cc75fd21edf6395080463557a100710569136815eacc6d18c55eeea7a6631a095ed2c0038000e4e2fced87aace38cad7af6395c4a500ae0812ee6a1652ddfc6a0d79b0e971decec26b5e95d8196c13792361c0e9d6bf24b8bfc6f563afa8dfbd6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ed640c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c000000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0bdd0dcffe4aedd1595f77fe328a75de18ffd08ef5d16911892edf2f2ebe19bf8a00ee8d195d4e205e70caf7c6c73d6bb04dce350ad55ee2aeed494dc7b4c9ac8a4c0c0",
+ "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06c3584b64e62a4336e2d315258050e576e22505798ae583b70d377f172e84e96a0c1148f29def9f8445cbad3e7a505de99ea4c83958dfad69e4c3b868f39881f8fa000f385f6ed5eff6fd324f31f3d641c684e177e907bd499ccdd25e3e60b13cbf4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efc80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0539e871f55bde922648b7ef1b42a7bfb36eacbca5d5c925a07367131c7ce7f53a072f7a1e23e3f10174df4a66dff6674a9cf2700fd4ee120f635287704349a4ef4c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0xa02cc75fd21edf6395080463557a100710569136815eacc6d18c55eeea7a6631",
- "transactionsTrie": "0x95ed2c0038000e4e2fced87aace38cad7af6395c4a500ae0812ee6a1652ddfc6",
- "receiptTrie": "0xd79b0e971decec26b5e95d8196c13792361c0e9d6bf24b8bfc6f563afa8dfbd6",
+ "stateRoot": "0x6c3584b64e62a4336e2d315258050e576e22505798ae583b70d377f172e84e96",
+ "transactionsTrie": "0xc1148f29def9f8445cbad3e7a505de99ea4c83958dfad69e4c3b868f39881f8f",
+ "receiptTrie": "0x00f385f6ed5eff6fd324f31f3d641c684e177e907bd499ccdd25e3e60b13cbf4",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x01ed64",
+ "gasUsed": "0x01efc8",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11814,7 +15746,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x6d37c6272645c9c44e324c1df326cc79c81bf86e4a5ce64f2fb66e15568ce68b"
+ "hash": "0xee77ca29d9953e53bebc59a3a16f8d6c544cb6e07eb7dc3b5864c0e6811b516d"
},
"blocknumber": "1",
"transactions": [
@@ -11827,11 +15759,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c000000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
- "v": "0x00",
- "r": "0xbdd0dcffe4aedd1595f77fe328a75de18ffd08ef5d16911892edf2f2ebe19bf8",
- "s": "0x0ee8d195d4e205e70caf7c6c73d6bb04dce350ad55ee2aeed494dc7b4c9ac8a4",
+ "v": "0x01",
+ "r": "0x539e871f55bde922648b7ef1b42a7bfb36eacbca5d5c925a07367131c7ce7f53",
+ "s": "0x72f7a1e23e3f10174df4a66dff6674a9cf2700fd4ee120f635287704349a4ef4",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11839,7 +15771,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x6d37c6272645c9c44e324c1df326cc79c81bf86e4a5ce64f2fb66e15568ce68b",
+ "lastblockhash": "0xee77ca29d9953e53bebc59a3a16f8d6c544cb6e07eb7dc3b5864c0e6811b516d",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11866,8 +15798,8 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0"
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b"
}
},
"0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
@@ -11880,16 +15812,16 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xfffffffffffff28244",
+ "balance": "0xfffffffffffff27188",
"code": "0x",
"storage": {}
}
},
"sealEngine": "NoProof"
},
- "091-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9": {
+ "121-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -11920,19 +15852,19 @@
},
"blocks": [
{
- "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080d13bc26b49fda05e0b413085255efdbda1a7492220cde9c6b05971a67bfd7ea0fd95219818299e41c673e617bdd8c85da456e43751caec8e388fcacdd3ad90d7a0f75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a2e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a09ce512af47f3d82884585500c239e4da9e6998c7068fefbcb00fe9b63919f548a0152e24207412dbebbea4bd7f704cff74fc30555912e0d83fcfee674d22f01fddc0c0",
+ "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed8d7e332bb0737595599d24d965af1fd2fd9e00fcff0b0759b679dc7789cf4ba001be2deaf52612f3bf45fb83d183e83e29b5979db1aeae9ad1308023c56b2ac9a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0bf0e68b6a6de351f9c9ac0746fe0a7af073d2499444796a6343d871585476fa6a062e873085625eb8369f0ca10d3db29d6edf0b18ddf13f9a1e802a65e8e822350c0c0",
"blockHeader": {
"parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56",
"uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
"coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
- "stateRoot": "0x80d13bc26b49fda05e0b413085255efdbda1a7492220cde9c6b05971a67bfd7e",
- "transactionsTrie": "0xfd95219818299e41c673e617bdd8c85da456e43751caec8e388fcacdd3ad90d7",
- "receiptTrie": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a",
+ "stateRoot": "0xed8d7e332bb0737595599d24d965af1fd2fd9e00fcff0b0759b679dc7789cf4b",
+ "transactionsTrie": "0x01be2deaf52612f3bf45fb83d183e83e29b5979db1aeae9ad1308023c56b2ac9",
+ "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069",
"bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x00",
"number": "0x01",
"gasLimit": "0x016345785d8a0000",
- "gasUsed": "0x028a2e",
+ "gasUsed": "0x028c92",
"timestamp": "0x0c",
"extraData": "0x",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
@@ -11942,7 +15874,7 @@
"blobGasUsed": "0x00",
"excessBlobGas": "0x00",
"parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
- "hash": "0x01ee849a96853fef7db6ce0b45fe5c1984d8a8cf68959dc251af65323df3f3b8"
+ "hash": "0xbd93f361d0571ac0a63d2e1d670ac581e7a55ddd18e579687bbc184c74e163f7"
},
"blocknumber": "1",
"transactions": [
@@ -11955,11 +15887,11 @@
"gasLimit": "0x0f4240",
"to": "0x0000000000000000000000000000000000000100",
"value": "0x00",
- "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43",
"accessList": [],
- "v": "0x01",
- "r": "0x9ce512af47f3d82884585500c239e4da9e6998c7068fefbcb00fe9b63919f548",
- "s": "0x152e24207412dbebbea4bd7f704cff74fc30555912e0d83fcfee674d22f01fdd",
+ "v": "0x00",
+ "r": "0xbf0e68b6a6de351f9c9ac0746fe0a7af073d2499444796a6343d871585476fa6",
+ "s": "0x62e873085625eb8369f0ca10d3db29d6edf0b18ddf13f9a1e802a65e8e822350",
"sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
}
],
@@ -11967,7 +15899,7 @@
"withdrawals": []
}
],
- "lastblockhash": "0x01ee849a96853fef7db6ce0b45fe5c1984d8a8cf68959dc251af65323df3f3b8",
+ "lastblockhash": "0xbd93f361d0571ac0a63d2e1d670ac581e7a55ddd18e579687bbc184c74e163f7",
"pre": {
"0x0000000000000000000000000000000000000100": {
"nonce": "0x00",
@@ -11994,9 +15926,9 @@
"balance": "0x01000000000000000000",
"code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555",
"storage": {
- "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
- "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0",
+ "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b",
"0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"
}
},
@@ -12010,7 +15942,7 @@
},
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
"nonce": "0x01",
- "balance": "0xffffffffffffee38be",
+ "balance": "0xffffffffffffee2802",
"code": "0x",
"storage": {}
}
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json
index cbb2b9d8bfd..dc393dff045 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-correct_proof-exact_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -114,7 +114,7 @@
},
"001-fork=Cancun-correct_proof-extra_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -227,7 +227,7 @@
},
"002-fork=Cancun-correct_proof-insufficient_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -340,7 +340,7 @@
},
"003-fork=Cancun-incorrect_proof-exact_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -453,7 +453,7 @@
},
"004-fork=Cancun-incorrect_proof-extra_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -566,7 +566,7 @@
},
"005-fork=Cancun-incorrect_proof-insufficient_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json
index 7cf398a5e9f..7ffc96a5620 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-success=True-in_bounds_z": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json
index 365a3348b71..c91ce729937 100644
--- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json
+++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-proof=correct-exact_gas-call_type=CALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -128,7 +128,7 @@
},
"001-fork=Cancun-proof=correct-exact_gas-call_type=DELEGATECALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -255,7 +255,7 @@
},
"002-fork=Cancun-proof=correct-exact_gas-call_type=CALLCODE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -382,7 +382,7 @@
},
"003-fork=Cancun-proof=correct-exact_gas-call_type=STATICCALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -509,7 +509,7 @@
},
"004-fork=Cancun-proof=correct-insufficient_gas-call_type=CALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -636,7 +636,7 @@
},
"005-fork=Cancun-proof=correct-insufficient_gas-call_type=DELEGATECALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -763,7 +763,7 @@
},
"006-fork=Cancun-proof=correct-insufficient_gas-call_type=CALLCODE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -890,7 +890,7 @@
},
"007-fork=Cancun-proof=correct-insufficient_gas-call_type=STATICCALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1017,7 +1017,7 @@
},
"008-fork=Cancun-proof=correct-extra_gas-call_type=CALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1144,7 +1144,7 @@
},
"009-fork=Cancun-proof=correct-extra_gas-call_type=DELEGATECALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1271,7 +1271,7 @@
},
"010-fork=Cancun-proof=correct-extra_gas-call_type=CALLCODE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1398,7 +1398,7 @@
},
"011-fork=Cancun-proof=correct-extra_gas-call_type=STATICCALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1525,7 +1525,7 @@
},
"012-fork=Cancun-proof=incorrect-exact_gas-call_type=CALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1652,7 +1652,7 @@
},
"013-fork=Cancun-proof=incorrect-exact_gas-call_type=DELEGATECALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1779,7 +1779,7 @@
},
"014-fork=Cancun-proof=incorrect-exact_gas-call_type=CALLCODE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -1906,7 +1906,7 @@
},
"015-fork=Cancun-proof=incorrect-exact_gas-call_type=STATICCALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2033,7 +2033,7 @@
},
"016-fork=Cancun-proof=incorrect-insufficient_gas-call_type=CALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2160,7 +2160,7 @@
},
"017-fork=Cancun-proof=incorrect-insufficient_gas-call_type=DELEGATECALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2287,7 +2287,7 @@
},
"018-fork=Cancun-proof=incorrect-insufficient_gas-call_type=CALLCODE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2414,7 +2414,7 @@
},
"019-fork=Cancun-proof=incorrect-insufficient_gas-call_type=STATICCALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2541,7 +2541,7 @@
},
"020-fork=Cancun-proof=incorrect-extra_gas-call_type=CALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2668,7 +2668,7 @@
},
"021-fork=Cancun-proof=incorrect-extra_gas-call_type=DELEGATECALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2795,7 +2795,7 @@
},
"022-fork=Cancun-proof=incorrect-extra_gas-call_type=CALLCODE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
@@ -2922,7 +2922,7 @@
},
"023-fork=Cancun-proof=incorrect-extra_gas-call_type=STATICCALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md",
"reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd"
},
diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json
index 1caa877aa38..dbba5372b47 100644
--- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json
+++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-empty_memory-length=0-src=0-dest=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -131,7 +131,7 @@
},
"001-fork=Cancun-empty_memory-length=0-src=0-dest=32": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -261,7 +261,7 @@
},
"002-fork=Cancun-empty_memory-length=0-src=32-dest=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -391,7 +391,7 @@
},
"003-fork=Cancun-empty_memory-length=0-src=32-dest=32": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -521,7 +521,7 @@
},
"004-fork=Cancun-empty_memory-length=1-src=0-dest=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -652,7 +652,7 @@
},
"005-fork=Cancun-empty_memory-length=1-src=0-dest=32": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -783,7 +783,7 @@
},
"006-fork=Cancun-empty_memory-length=1-src=32-dest=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -914,7 +914,7 @@
},
"007-fork=Cancun-empty_memory-length=1-src=32-dest=32": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json
index ed7d4d5e00a..39929e223c4 100644
--- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json
+++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-zero_inputs": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -140,7 +140,7 @@
},
"001-fork=Cancun-zero_length_out_of_bounds_destination": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -279,7 +279,7 @@
},
"002-fork=Cancun-single_byte_rewrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -418,7 +418,7 @@
},
"003-fork=Cancun-full_word_rewrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -557,7 +557,7 @@
},
"004-fork=Cancun-single_byte_forward_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -696,7 +696,7 @@
},
"005-fork=Cancun-full_word_forward_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -835,7 +835,7 @@
},
"006-fork=Cancun-mid_word_single_byte_rewrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -974,7 +974,7 @@
},
"007-fork=Cancun-mid_word_single_word_rewrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1113,7 +1113,7 @@
},
"008-fork=Cancun-mid_word_multi_word_rewrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1252,7 +1252,7 @@
},
"009-fork=Cancun-two_words_forward_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1391,7 +1391,7 @@
},
"010-fork=Cancun-two_words_backward_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1530,7 +1530,7 @@
},
"011-fork=Cancun-two_words_backward_overwrite_single_byte_offset": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1669,7 +1669,7 @@
},
"012-fork=Cancun-single_byte_memory_extension": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1809,7 +1809,7 @@
},
"013-fork=Cancun-single_word_memory_extension": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1949,7 +1949,7 @@
},
"014-fork=Cancun-single_word_minus_one_byte_memory_extension": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2089,7 +2089,7 @@
},
"015-fork=Cancun-single_word_plus_one_byte_memory_extension": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2229,7 +2229,7 @@
},
"016-fork=Cancun-full_memory_rewrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2368,7 +2368,7 @@
},
"017-fork=Cancun-full_memory_copy": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2508,7 +2508,7 @@
},
"018-fork=Cancun-full_memory_copy_offset": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2648,7 +2648,7 @@
},
"019-fork=Cancun-full_memory_clean": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2779,7 +2779,7 @@
},
"020-fork=Cancun-out_of_bounds_memory_extension": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json
index 88e1645cc05..090d1b291b5 100644
--- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json
+++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-opcode=CALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -177,7 +177,7 @@
},
"001-fork=Cancun-opcode=DELEGATECALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -352,7 +352,7 @@
},
"002-fork=Cancun-opcode=STATICCALL": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -526,7 +526,7 @@
},
"003-fork=Cancun-opcode=CALLCODE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -701,7 +701,7 @@
},
"004-fork=Cancun-opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -883,7 +883,7 @@
},
"005-fork=Cancun-opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json
index 23bc6b7c0dc..c2c6dcfc540 100644
--- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json
+++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-from_existent_memory-successful=False--max_dest_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -139,7 +139,7 @@
},
"001-fork=Cancun-from_existent_memory-successful=False--max_dest_minus_one_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -277,7 +277,7 @@
},
"002-fork=Cancun-from_existent_memory-successful=False--half_max_dest_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -415,7 +415,7 @@
},
"003-fork=Cancun-from_existent_memory-successful=False--max_src_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -553,7 +553,7 @@
},
"004-fork=Cancun-from_existent_memory-successful=False--max_src_minus_one_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -691,7 +691,7 @@
},
"005-fork=Cancun-from_existent_memory-successful=False--half_max_src_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -829,7 +829,7 @@
},
"006-fork=Cancun-from_existent_memory-successful=False--max_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -967,7 +967,7 @@
},
"007-fork=Cancun-from_existent_memory-successful=False--max_length_minus_one_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1105,7 +1105,7 @@
},
"008-fork=Cancun-from_existent_memory-successful=False--half_max_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1243,7 +1243,7 @@
},
"009-fork=Cancun-from_empty_memory-successful=False--max_dest_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1381,7 +1381,7 @@
},
"010-fork=Cancun-from_empty_memory-successful=False--max_dest_minus_one_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1519,7 +1519,7 @@
},
"011-fork=Cancun-from_empty_memory-successful=False--half_max_dest_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1657,7 +1657,7 @@
},
"012-fork=Cancun-from_empty_memory-successful=False--max_src_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1795,7 +1795,7 @@
},
"013-fork=Cancun-from_empty_memory-successful=False--max_src_minus_one_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1933,7 +1933,7 @@
},
"014-fork=Cancun-from_empty_memory-successful=False--half_max_src_single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2071,7 +2071,7 @@
},
"015-fork=Cancun-from_empty_memory-successful=False--max_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2209,7 +2209,7 @@
},
"016-fork=Cancun-from_empty_memory-successful=False--max_length_minus_one_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2347,7 +2347,7 @@
},
"017-fork=Cancun-from_empty_memory-successful=False--half_max_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json
index a8db8130e37..dfa6f4d3a05 100644
--- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json
+++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -139,7 +139,7 @@
},
"001-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -277,7 +277,7 @@
},
"002-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_word_boundary": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -415,7 +415,7 @@
},
"003-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_word_boundary_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -553,7 +553,7 @@
},
"004-fork=Cancun-from_existent_memory-successful=True-multi_word_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -691,7 +691,7 @@
},
"005-fork=Cancun-from_existent_memory-successful=True-multi_word_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -829,7 +829,7 @@
},
"006-fork=Cancun-from_existent_memory-successful=True-zero_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -967,7 +967,7 @@
},
"007-fork=Cancun-from_existent_memory-successful=True-huge_dest_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1105,7 +1105,7 @@
},
"008-fork=Cancun-from_existent_memory-successful=True-huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1243,7 +1243,7 @@
},
"009-fork=Cancun-from_existent_memory-successful=True-huge_dest_huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1381,7 +1381,7 @@
},
"010-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1519,7 +1519,7 @@
},
"011-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1657,7 +1657,7 @@
},
"012-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_word_boundary": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1795,7 +1795,7 @@
},
"013-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_word_boundary_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -1933,7 +1933,7 @@
},
"014-fork=Cancun-from_existent_memory-successful=False-multi_word_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2071,7 +2071,7 @@
},
"015-fork=Cancun-from_existent_memory-successful=False-multi_word_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2209,7 +2209,7 @@
},
"016-fork=Cancun-from_existent_memory-successful=False-zero_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2347,7 +2347,7 @@
},
"017-fork=Cancun-from_existent_memory-successful=False-huge_dest_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2485,7 +2485,7 @@
},
"018-fork=Cancun-from_existent_memory-successful=False-huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2623,7 +2623,7 @@
},
"019-fork=Cancun-from_existent_memory-successful=False-huge_dest_huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2761,7 +2761,7 @@
},
"020-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -2899,7 +2899,7 @@
},
"021-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -3037,7 +3037,7 @@
},
"022-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_word_boundary": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -3175,7 +3175,7 @@
},
"023-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_word_boundary_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -3313,7 +3313,7 @@
},
"024-fork=Cancun-from_empty_memory-successful=True-multi_word_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -3451,7 +3451,7 @@
},
"025-fork=Cancun-from_empty_memory-successful=True-multi_word_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -3589,7 +3589,7 @@
},
"026-fork=Cancun-from_empty_memory-successful=True-zero_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -3727,7 +3727,7 @@
},
"027-fork=Cancun-from_empty_memory-successful=True-huge_dest_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -3865,7 +3865,7 @@
},
"028-fork=Cancun-from_empty_memory-successful=True-huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4003,7 +4003,7 @@
},
"029-fork=Cancun-from_empty_memory-successful=True-huge_dest_huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4141,7 +4141,7 @@
},
"030-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4279,7 +4279,7 @@
},
"031-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4417,7 +4417,7 @@
},
"032-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_word_boundary": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4555,7 +4555,7 @@
},
"033-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_word_boundary_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4693,7 +4693,7 @@
},
"034-fork=Cancun-from_empty_memory-successful=False-multi_word_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4831,7 +4831,7 @@
},
"035-fork=Cancun-from_empty_memory-successful=False-multi_word_expansion_2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -4969,7 +4969,7 @@
},
"036-fork=Cancun-from_empty_memory-successful=False-zero_length_expansion": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -5107,7 +5107,7 @@
},
"037-fork=Cancun-from_empty_memory-successful=False-huge_dest_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -5245,7 +5245,7 @@
},
"038-fork=Cancun-from_empty_memory-successful=False-huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -5383,7 +5383,7 @@
},
"039-fork=Cancun-from_empty_memory-successful=False-huge_dest_huge_src_zero_length": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json
index eb3c9cd65c6..57cdb743f12 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -150,7 +150,7 @@
},
"001-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -299,7 +299,7 @@
},
"002-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -432,7 +432,7 @@
},
"003-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -581,7 +581,7 @@
},
"004-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -739,7 +739,7 @@
},
"005-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -897,7 +897,7 @@
},
"006-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1087,7 +1087,7 @@
},
"007-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1277,7 +1277,7 @@
},
"008-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1451,7 +1451,7 @@
},
"009-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1641,7 +1641,7 @@
},
"010-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1815,7 +1815,7 @@
},
"011-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2005,7 +2005,7 @@
},
"012-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2172,7 +2172,7 @@
},
"013-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2355,7 +2355,7 @@
},
"014-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2510,7 +2510,7 @@
},
"015-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2665,7 +2665,7 @@
},
"016-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2804,7 +2804,7 @@
},
"017-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2959,7 +2959,7 @@
},
"018-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3123,7 +3123,7 @@
},
"019-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3287,7 +3287,7 @@
},
"020-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3483,7 +3483,7 @@
},
"021-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3679,7 +3679,7 @@
},
"022-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3859,7 +3859,7 @@
},
"023-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4055,7 +4055,7 @@
},
"024-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4235,7 +4235,7 @@
},
"025-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4431,7 +4431,7 @@
},
"026-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4604,7 +4604,7 @@
},
"027-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4793,7 +4793,7 @@
},
"028-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4962,7 +4962,7 @@
},
"029-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -5131,7 +5131,7 @@
},
"030-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -5284,7 +5284,7 @@
},
"031-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -5453,7 +5453,7 @@
},
"032-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -5631,7 +5631,7 @@
},
"033-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -5809,7 +5809,7 @@
},
"034-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -6019,7 +6019,7 @@
},
"035-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -6229,7 +6229,7 @@
},
"036-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -6423,7 +6423,7 @@
},
"037-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -6633,7 +6633,7 @@
},
"038-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -6827,7 +6827,7 @@
},
"039-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -7037,7 +7037,7 @@
},
"040-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -7224,7 +7224,7 @@
},
"041-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -7427,7 +7427,7 @@
},
"042-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -7602,7 +7602,7 @@
},
"043-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -7777,7 +7777,7 @@
},
"044-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -7936,7 +7936,7 @@
},
"045-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -8111,7 +8111,7 @@
},
"046-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -8295,7 +8295,7 @@
},
"047-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -8479,7 +8479,7 @@
},
"048-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -8695,7 +8695,7 @@
},
"049-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -8911,7 +8911,7 @@
},
"050-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -9111,7 +9111,7 @@
},
"051-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -9327,7 +9327,7 @@
},
"052-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -9527,7 +9527,7 @@
},
"053-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -9743,7 +9743,7 @@
},
"054-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -9936,7 +9936,7 @@
},
"055-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json
index 1db62240272..af8e531bc50 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -150,7 +150,7 @@
},
"001-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -299,7 +299,7 @@
},
"002-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -454,7 +454,7 @@
},
"003-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -609,7 +609,7 @@
},
"004-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -778,7 +778,7 @@
},
"005-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -947,7 +947,7 @@
},
"006-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1122,7 +1122,7 @@
},
"007-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json
index ad6190eebde..51047478ec9 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -162,7 +162,7 @@
},
"001-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -323,7 +323,7 @@
},
"002-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -484,7 +484,7 @@
},
"003-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -645,7 +645,7 @@
},
"004-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -812,7 +812,7 @@
},
"005-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -979,7 +979,7 @@
},
"006-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1146,7 +1146,7 @@
},
"007-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1313,7 +1313,7 @@
},
"008-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1502,7 +1502,7 @@
},
"009-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1691,7 +1691,7 @@
},
"010-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1880,7 +1880,7 @@
},
"011-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2069,7 +2069,7 @@
},
"012-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2264,7 +2264,7 @@
},
"013-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2459,7 +2459,7 @@
},
"014-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2654,7 +2654,7 @@
},
"015-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json
index c39342b6bb2..97231a72de9 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_other_address-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -167,7 +167,7 @@
},
"001-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_to_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -317,7 +317,7 @@
},
"002-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_other_address-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -489,7 +489,7 @@
},
"003-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_to_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -661,7 +661,7 @@
},
"004-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_other_address-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -847,7 +847,7 @@
},
"005-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_to_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1033,7 +1033,7 @@
},
"006-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_other_address-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1225,7 +1225,7 @@
},
"007-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_to_self-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json
index 99025dddcbf..6fad5ce6bdb 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -146,7 +146,7 @@
},
"001-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -291,7 +291,7 @@
},
"002-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -437,7 +437,7 @@
},
"003-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -583,7 +583,7 @@
},
"004-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -734,7 +734,7 @@
},
"005-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -885,7 +885,7 @@
},
"006-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1037,7 +1037,7 @@
},
"007-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1189,7 +1189,7 @@
},
"008-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1354,7 +1354,7 @@
},
"009-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1519,7 +1519,7 @@
},
"010-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1685,7 +1685,7 @@
},
"011-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1851,7 +1851,7 @@
},
"012-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2022,7 +2022,7 @@
},
"013-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2193,7 +2193,7 @@
},
"014-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2365,7 +2365,7 @@
},
"015-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json
index 5a302e4f52d..181930e06e5 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -137,7 +137,7 @@
},
"001-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -273,7 +273,7 @@
},
"002-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -415,7 +415,7 @@
},
"003-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -557,7 +557,7 @@
},
"004-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -713,7 +713,7 @@
},
"005-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -869,7 +869,7 @@
},
"006-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1031,7 +1031,7 @@
},
"007-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=100000": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json
index 11e98856128..aba8ef454f1 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -162,7 +162,7 @@
},
"001-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -329,7 +329,7 @@
},
"002-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -499,7 +499,7 @@
},
"003-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -675,7 +675,7 @@
},
"004-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -864,7 +864,7 @@
},
"005-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1059,7 +1059,7 @@
},
"006-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1257,7 +1257,7 @@
},
"007-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json
index a2eb6dd76d1..9bfdf395bb9 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-single_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -141,7 +141,7 @@
},
"001-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-single_call_self_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -265,7 +265,7 @@
},
"002-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -414,7 +414,7 @@
},
"003-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -595,7 +595,7 @@
},
"004-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -760,7 +760,7 @@
},
"005-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -925,7 +925,7 @@
},
"006-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1083,7 +1083,7 @@
},
"007-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-single_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1223,7 +1223,7 @@
},
"008-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-single_call_self_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1347,7 +1347,7 @@
},
"009-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1496,7 +1496,7 @@
},
"010-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1677,7 +1677,7 @@
},
"011-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -1842,7 +1842,7 @@
},
"012-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2007,7 +2007,7 @@
},
"013-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2165,7 +2165,7 @@
},
"014-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2333,7 +2333,7 @@
},
"015-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call_self_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2485,7 +2485,7 @@
},
"016-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2662,7 +2662,7 @@
},
"017-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -2871,7 +2871,7 @@
},
"018-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3067,7 +3067,7 @@
},
"019-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3263,7 +3263,7 @@
},
"020-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3450,7 +3450,7 @@
},
"021-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3618,7 +3618,7 @@
},
"022-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call_self_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3771,7 +3771,7 @@
},
"023-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -3948,7 +3948,7 @@
},
"024-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4157,7 +4157,7 @@
},
"025-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4354,7 +4354,7 @@
},
"026-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -4550,7 +4550,7 @@
},
"027-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json
index 112b60f918f..ddbfe91303c 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-no_outer_selfdestruct": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -159,7 +159,7 @@
},
"001-fork=Cancun-outer_selfdestruct_before_inner_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -315,7 +315,7 @@
},
"002-fork=Cancun-outer_selfdestruct_after_inner_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json
index f3ce73fba40..916b5d1fcd9 100644
--- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json
+++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-no_outer_selfdestruct": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -151,7 +151,7 @@
},
"001-fork=Cancun-outer_selfdestruct_before_inner_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
@@ -308,7 +308,7 @@
},
"002-fork=Cancun-outer_selfdestruct_after_inner_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md",
"reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0"
},
diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json
index dd7b0a02149..b86805d3316 100644
--- a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json
+++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json
@@ -1,7 +1,7 @@
{
"000-fork=ShanghaiToCancunAtTime15k": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json
index ea5ca3dde95..8b8fa57636a 100644
--- a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json
+++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-enough_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -143,7 +143,7 @@
},
"001-fork=Cancun-out_of_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json
index e54dcda312a..1196db79c2a 100644
--- a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json
+++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json
@@ -1,7 +1,7 @@
{
"000-fork=Cancun-no_stack_overflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
@@ -143,7 +143,7 @@
},
"001-fork=Cancun-stack_overflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md",
"reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd"
},
diff --git a/tests/execution-spec-tests/frontier/opcodes/dup/dup.json b/tests/execution-spec-tests/frontier/opcodes/dup/dup.json
index 6792f363f75..5d43be2bcaa 100644
--- a/tests/execution-spec-tests/frontier/opcodes/dup/dup.json
+++ b/tests/execution-spec-tests/frontier/opcodes/dup/dup.json
@@ -1,7 +1,7 @@
{
"000-fork=Frontier": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Frontier",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -780,7 +780,7 @@
},
"001-fork=Homestead": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Homestead",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -1559,7 +1559,7 @@
},
"002-fork=Byzantium": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Byzantium",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -2338,7 +2338,7 @@
},
"003-fork=Constantinople": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Constantinople",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -3117,7 +3117,7 @@
},
"004-fork=ConstantinopleFix": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "ConstantinopleFix",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -3896,7 +3896,7 @@
},
"005-fork=Istanbul": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Istanbul",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -4675,7 +4675,7 @@
},
"006-fork=Berlin": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Berlin",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -5454,7 +5454,7 @@
},
"007-fork=London": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "London",
"genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0",
@@ -6235,7 +6235,7 @@
},
"008-fork=Merge": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Merge",
"genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0",
@@ -7016,7 +7016,7 @@
},
"009-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Shanghai",
"genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0",
@@ -7800,7 +7800,7 @@
},
"010-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Cancun",
"genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d1412238a97757a9c28f42e93030c66a66a4659dbfb40ffc74cabcfa17b3bf7fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
diff --git a/tests/execution-spec-tests/homestead/yul/yul_example/yul.json b/tests/execution-spec-tests/homestead/yul/yul_example/yul.json
index e637485d3ac..3f91b1d257c 100644
--- a/tests/execution-spec-tests/homestead/yul/yul_example/yul.json
+++ b/tests/execution-spec-tests/homestead/yul/yul_example/yul.json
@@ -1,7 +1,7 @@
{
"000-fork=Homestead": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Homestead",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c847cd5a23c01627df4f68be88b99e47576f53d335f2729cbcb0d9d7f47c99ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -104,7 +104,7 @@
},
"001-fork=Byzantium": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Byzantium",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -207,7 +207,7 @@
},
"002-fork=Constantinople": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Constantinople",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -310,7 +310,7 @@
},
"003-fork=ConstantinopleFix": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "ConstantinopleFix",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -413,7 +413,7 @@
},
"004-fork=Istanbul": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Istanbul",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -516,7 +516,7 @@
},
"005-fork=Berlin": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Berlin",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -619,7 +619,7 @@
},
"006-fork=London": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "London",
"genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0",
@@ -724,7 +724,7 @@
},
"007-fork=Merge": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Merge",
"genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0",
@@ -829,7 +829,7 @@
},
"008-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Shanghai",
"genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ff452e49ef88af4cdb86fe07a6eb39679b60321ae85bce598022aee4653e9abca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0",
@@ -937,7 +937,7 @@
},
"009-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Cancun",
"genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02921dffe2be2c40e5952e3211a830062db74456f5abe11fe37b061805fa41989a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
diff --git a/tests/execution-spec-tests/info.txt b/tests/execution-spec-tests/info.txt
index 5d35b311a9d..393a4178eb5 100644
--- a/tests/execution-spec-tests/info.txt
+++ b/tests/execution-spec-tests/info.txt
@@ -1,3 +1,3 @@
-ref: refs/tags/v1.0.5
-commit: 228f40db3f2beadd62c79395fc60dbd57d204826
-build: 2023-09-26T14:07:31Z
+ref: refs/tags/v1.0.6
+commit: 4871503a50f36b96cd3b60342d2c355583874f54
+build: 2023-10-19T19:45:09Z
diff --git a/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json b/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json
index 02ea1484058..6df9369151a 100644
--- a/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json
+++ b/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json
@@ -1,7 +1,7 @@
{
"000-fork=Istanbul": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md",
"reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2"
},
@@ -106,7 +106,7 @@
},
"001-fork=Berlin": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md",
"reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2"
},
@@ -211,7 +211,7 @@
},
"002-fork=London": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md",
"reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2"
},
@@ -318,7 +318,7 @@
},
"003-fork=Merge": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md",
"reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2"
},
@@ -425,7 +425,7 @@
},
"004-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md",
"reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2"
},
@@ -535,7 +535,7 @@
},
"005-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md",
"reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2"
},
diff --git a/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json b/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json
index 6df38ff7ad0..809e1133e95 100644
--- a/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json
+++ b/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json
@@ -1,7 +1,7 @@
{
"000-fork=Constantinople": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Constantinople",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -191,7 +191,7 @@
},
"001-fork=ConstantinopleFix": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "ConstantinopleFix",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -381,7 +381,7 @@
},
"002-fork=Istanbul": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Istanbul",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -571,7 +571,7 @@
},
"003-fork=Berlin": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Berlin",
"genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0",
@@ -761,7 +761,7 @@
},
"004-fork=London": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "London",
"genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0",
@@ -953,7 +953,7 @@
},
"005-fork=Merge": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Merge",
"genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0",
@@ -1145,7 +1145,7 @@
},
"006-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Shanghai",
"genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0",
@@ -1340,7 +1340,7 @@
},
"007-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926"
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019"
},
"network": "Cancun",
"genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fd47f280027e1fa6684511e8c24de936760313e5daed2eebfb291660fad65046a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0",
diff --git a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json
index 98b3e843435..114d1b91075 100644
--- a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json
+++ b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-CALL-sufficient_gas-opcode_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -123,7 +123,7 @@
},
"001-fork=Shanghai-CALL-insufficient_gas-opcode_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -243,7 +243,7 @@
},
"002-fork=Shanghai-CALLCODE-sufficient_gas-opcode_callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -365,7 +365,7 @@
},
"003-fork=Shanghai-CALLCODE-insufficient_gas-opcode_callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -485,7 +485,7 @@
},
"004-fork=Shanghai-DELEGATECALL-sufficient_gas-opcode_delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -607,7 +607,7 @@
},
"005-fork=Shanghai-DELEGATECALL-insufficient_gas-opcode_delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -727,7 +727,7 @@
},
"006-fork=Shanghai-STATICCALL-sufficient_gas-opcode_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -849,7 +849,7 @@
},
"007-fork=Shanghai-STATICCALL-insufficient_gas-opcode_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -969,7 +969,7 @@
},
"008-fork=Cancun-CALL-sufficient_gas-opcode_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1111,7 +1111,7 @@
},
"009-fork=Cancun-CALL-insufficient_gas-opcode_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1251,7 +1251,7 @@
},
"010-fork=Cancun-CALLCODE-sufficient_gas-opcode_callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1393,7 +1393,7 @@
},
"011-fork=Cancun-CALLCODE-insufficient_gas-opcode_callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1533,7 +1533,7 @@
},
"012-fork=Cancun-DELEGATECALL-sufficient_gas-opcode_delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1675,7 +1675,7 @@
},
"013-fork=Cancun-DELEGATECALL-insufficient_gas-opcode_delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1815,7 +1815,7 @@
},
"014-fork=Cancun-STATICCALL-sufficient_gas-opcode_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1957,7 +1957,7 @@
},
"015-fork=Cancun-STATICCALL-insufficient_gas-opcode_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json
index 13d9502659e..7a7fe9892a8 100644
--- a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json
+++ b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json
@@ -1,7 +1,7 @@
{
"000-fork=Merge-EXTCODESIZE-opcode_extcodesize": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -108,7 +108,7 @@
},
"001-fork=Merge-EXTCODECOPY-opcode_extcodecopy": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -215,7 +215,7 @@
},
"002-fork=Merge-EXTCODEHASH-opcode_extcodehash": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -322,7 +322,7 @@
},
"003-fork=Merge-BALANCE-opcode_balance": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -429,7 +429,7 @@
},
"004-fork=Merge-CALL-opcode_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -536,7 +536,7 @@
},
"005-fork=Merge-CALLCODE-opcode_callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -643,7 +643,7 @@
},
"006-fork=Merge-DELEGATECALL-opcode_delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -750,7 +750,7 @@
},
"007-fork=Merge-STATICCALL-opcode_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -857,7 +857,7 @@
},
"008-fork=Shanghai-EXTCODESIZE-opcode_extcodesize": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -967,7 +967,7 @@
},
"009-fork=Shanghai-EXTCODECOPY-opcode_extcodecopy": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1077,7 +1077,7 @@
},
"010-fork=Shanghai-EXTCODEHASH-opcode_extcodehash": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1187,7 +1187,7 @@
},
"011-fork=Shanghai-BALANCE-opcode_balance": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1297,7 +1297,7 @@
},
"012-fork=Shanghai-CALL-opcode_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1407,7 +1407,7 @@
},
"013-fork=Shanghai-CALLCODE-opcode_callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1517,7 +1517,7 @@
},
"014-fork=Shanghai-DELEGATECALL-opcode_delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1627,7 +1627,7 @@
},
"015-fork=Shanghai-STATICCALL-opcode_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1737,7 +1737,7 @@
},
"016-fork=Cancun-EXTCODESIZE-opcode_extcodesize": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1867,7 +1867,7 @@
},
"017-fork=Cancun-EXTCODECOPY-opcode_extcodecopy": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -1997,7 +1997,7 @@
},
"018-fork=Cancun-EXTCODEHASH-opcode_extcodehash": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -2127,7 +2127,7 @@
},
"019-fork=Cancun-BALANCE-opcode_balance": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -2257,7 +2257,7 @@
},
"020-fork=Cancun-CALL-opcode_call": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -2387,7 +2387,7 @@
},
"021-fork=Cancun-CALLCODE-opcode_callcode": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -2517,7 +2517,7 @@
},
"022-fork=Cancun-DELEGATECALL-opcode_delegatecall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
@@ -2647,7 +2647,7 @@
},
"023-fork=Cancun-STATICCALL-opcode_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md",
"reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json
index ccf279130a7..2da9c27ff45 100644
--- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json
+++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-before_jumpdest": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
@@ -111,7 +111,7 @@
},
"001-fork=Cancun-before_jumpdest": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json
index 71a96b40f49..d99d4e27883 100644
--- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json
+++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-during_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
@@ -124,7 +124,7 @@
},
"001-fork=Cancun-during_staticcall": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json
index 0574714a668..ca4d8c1561f 100644
--- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json
+++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-fill_stack": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
@@ -111,7 +111,7 @@
},
"001-fork=Cancun-fill_stack": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json
index 24a2df0e02e..d3dba7a82f8 100644
--- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json
+++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-gas_cost": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
@@ -111,7 +111,7 @@
},
"001-fork=Cancun-gas_cost": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json
index d628b4460ae..f5eed875f47 100644
--- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json
+++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-key_sstore": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
@@ -111,7 +111,7 @@
},
"001-fork=Cancun-key_sstore": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json
index a8ca5f6d09a..36a3751b7e6 100644
--- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json
+++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-stack_overflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
@@ -109,7 +109,7 @@
},
"001-fork=Cancun-stack_overflow": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json
index dbf2520b60f..51240d265a2 100644
--- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json
+++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-storage_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
@@ -114,7 +114,7 @@
},
"001-fork=Cancun-storage_overwrite": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md",
"reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json
index 681bfb6fd68..d2416f8621e 100644
--- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json
+++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-max_size_zeros-max_size_zeros": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -104,7 +104,7 @@
},
"001-fork=Shanghai-max_size_ones-max_size_ones": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -207,7 +207,7 @@
},
"002-fork=Shanghai-over_limit_zeros-over_limit_zeros": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -237,7 +237,46 @@
{
"rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3da0675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30ccc0c0",
"expectException": "max initcode size exceeded",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x989680",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0xb8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3d",
+ "s": "0x675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -261,7 +300,7 @@
},
"003-fork=Shanghai-over_limit_ones-over_limit_ones": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -291,7 +330,46 @@
{
"rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0a4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2a02edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18ec0c0",
"expectException": "max initcode size exceeded",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x989680",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101",
+ "v": "0x25",
+ "r": "0xa4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2",
+ "s": "0x2edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -315,7 +393,7 @@
},
"004-fork=Cancun-max_size_zeros-max_size_zeros": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -438,7 +516,7 @@
},
"005-fork=Cancun-max_size_ones-max_size_ones": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -561,7 +639,7 @@
},
"006-fork=Cancun-over_limit_zeros-over_limit_zeros": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -594,7 +672,49 @@
{
"rlp": "0xf9c294f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3da0675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30ccc0c0",
"expectException": "max initcode size exceeded",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x989680",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0xb8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3d",
+ "s": "0x675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30cc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -630,7 +750,7 @@
},
"007-fork=Cancun-over_limit_ones-over_limit_ones": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -663,7 +783,49 @@
{
"rlp": "0xf9c294f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0a4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2a02edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18ec0c0",
"expectException": "max initcode size exceeded",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x989680",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101",
+ "v": "0x25",
+ "r": "0xa4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2",
+ "s": "0x2edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18e",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json
index a5a3b6934f5..b96e4bdf5c2 100644
--- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json
+++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-create-max_size_zeros-max_size_zeros_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -132,7 +132,7 @@
},
"001-fork=Shanghai-create-max_size_ones-max_size_ones_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -263,7 +263,7 @@
},
"002-fork=Shanghai-create-over_limit_zeros-over_limit_zeros_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -385,7 +385,7 @@
},
"003-fork=Shanghai-create-over_limit_ones-over_limit_ones_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -507,7 +507,7 @@
},
"004-fork=Shanghai-create-empty-empty_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -638,7 +638,7 @@
},
"005-fork=Shanghai-create-single_byte-single_byte_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -769,7 +769,7 @@
},
"006-fork=Shanghai-create-32_bytes-32_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -900,7 +900,7 @@
},
"007-fork=Shanghai-create-33_bytes-33_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1031,7 +1031,7 @@
},
"008-fork=Shanghai-create-49120_bytes-49120_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1162,7 +1162,7 @@
},
"009-fork=Shanghai-create-49121_bytes-49121_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1293,7 +1293,7 @@
},
"010-fork=Shanghai-create2-max_size_zeros-max_size_zeros_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1424,7 +1424,7 @@
},
"011-fork=Shanghai-create2-max_size_ones-max_size_ones_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1555,7 +1555,7 @@
},
"012-fork=Shanghai-create2-over_limit_zeros-over_limit_zeros_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1677,7 +1677,7 @@
},
"013-fork=Shanghai-create2-over_limit_ones-over_limit_ones_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1799,7 +1799,7 @@
},
"014-fork=Shanghai-create2-empty-empty_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1930,7 +1930,7 @@
},
"015-fork=Shanghai-create2-single_byte-single_byte_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2061,7 +2061,7 @@
},
"016-fork=Shanghai-create2-32_bytes-32_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2192,7 +2192,7 @@
},
"017-fork=Shanghai-create2-33_bytes-33_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2323,7 +2323,7 @@
},
"018-fork=Shanghai-create2-49120_bytes-49120_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2454,7 +2454,7 @@
},
"019-fork=Shanghai-create2-49121_bytes-49121_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2585,7 +2585,7 @@
},
"020-fork=Cancun-create-max_size_zeros-max_size_zeros_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2736,7 +2736,7 @@
},
"021-fork=Cancun-create-max_size_ones-max_size_ones_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2887,7 +2887,7 @@
},
"022-fork=Cancun-create-over_limit_zeros-over_limit_zeros_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3029,7 +3029,7 @@
},
"023-fork=Cancun-create-over_limit_ones-over_limit_ones_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3171,7 +3171,7 @@
},
"024-fork=Cancun-create-empty-empty_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3322,7 +3322,7 @@
},
"025-fork=Cancun-create-single_byte-single_byte_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3473,7 +3473,7 @@
},
"026-fork=Cancun-create-32_bytes-32_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3624,7 +3624,7 @@
},
"027-fork=Cancun-create-33_bytes-33_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3775,7 +3775,7 @@
},
"028-fork=Cancun-create-49120_bytes-49120_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3926,7 +3926,7 @@
},
"029-fork=Cancun-create-49121_bytes-49121_bytes_CREATE": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4077,7 +4077,7 @@
},
"030-fork=Cancun-create2-max_size_zeros-max_size_zeros_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4228,7 +4228,7 @@
},
"031-fork=Cancun-create2-max_size_ones-max_size_ones_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4379,7 +4379,7 @@
},
"032-fork=Cancun-create2-over_limit_zeros-over_limit_zeros_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4521,7 +4521,7 @@
},
"033-fork=Cancun-create2-over_limit_ones-over_limit_ones_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4663,7 +4663,7 @@
},
"034-fork=Cancun-create2-empty-empty_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4814,7 +4814,7 @@
},
"035-fork=Cancun-create2-single_byte-single_byte_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4965,7 +4965,7 @@
},
"036-fork=Cancun-create2-32_bytes-32_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5116,7 +5116,7 @@
},
"037-fork=Cancun-create2-33_bytes-33_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5267,7 +5267,7 @@
},
"038-fork=Cancun-create2-49120_bytes-49120_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5418,7 +5418,7 @@
},
"039-fork=Cancun-create2-49121_bytes-49121_bytes_CREATE2": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json
index fe1b0a16c30..285f6deed0c 100644
--- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json
+++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-too_little_intrinsic_gas-max_size_zeros-max_size_zeros_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -31,7 +31,46 @@
{
"rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a8303db738080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721a040b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x03db73",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0x7a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721",
+ "s": "0x40b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -55,7 +94,7 @@
},
"001-fork=Shanghai-too_little_intrinsic_gas-max_size_ones-max_size_ones_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -85,7 +124,46 @@
{
"rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a830cdae38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a02e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425fa00fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87cc0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x0cdae3",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101",
+ "v": "0x26",
+ "r": "0x2e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425f",
+ "s": "0x0fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87c",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -109,7 +187,7 @@
},
"002-fork=Shanghai-too_little_intrinsic_gas-empty-empty_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -139,7 +217,46 @@
{
"rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcf07",
+ "to": "",
+ "value": "0x00",
+ "data": "0x",
+ "v": "0x25",
+ "r": "0x0372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4f",
+ "s": "0x4afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -163,7 +280,7 @@
},
"003-fork=Shanghai-too_little_intrinsic_gas-single_byte-single_byte_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -193,7 +310,46 @@
{
"rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0d80800025a082244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006a043f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcf0d",
+ "to": "",
+ "value": "0x00",
+ "data": "0x00",
+ "v": "0x25",
+ "r": "0x82244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006",
+ "s": "0x43f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -217,7 +373,7 @@
},
"004-fork=Shanghai-too_little_intrinsic_gas-32_bytes-32_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -247,7 +403,46 @@
{
"rlp": "0xf9028bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86df86b800a82cff58080a0610001600081600b8239f300000000000000000000000000000000000000000025a07dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8a01570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4afc0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcff5",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000",
+ "v": "0x25",
+ "r": "0x7dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8",
+ "s": "0x1570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4af",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -271,7 +466,7 @@
},
"005-fork=Shanghai-too_little_intrinsic_gas-33_bytes-33_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -301,7 +496,46 @@
{
"rlp": "0xf9028cf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86ef86c800a82cffb8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a010f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781a03d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcffb",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0x10f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781",
+ "s": "0x3d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -325,7 +559,7 @@
},
"006-fork=Shanghai-too_little_intrinsic_gas-49120_bytes-49120_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -355,7 +589,46 @@
{
"rlp": "0xf9c250f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c031f9c02e800a8303daf18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a03bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24a033ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbcc0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x03daf1",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0x3bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24",
+ "s": "0x33ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -379,7 +652,7 @@
},
"007-fork=Shanghai-too_little_intrinsic_gas-49121_bytes-49121_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -409,7 +682,46 @@
{
"rlp": "0xf9c251f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c032f9c02f800a8303daf78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0dadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0ca03c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x03daf7",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x25",
+ "r": "0xdadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0c",
+ "s": "0x3c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3",
@@ -433,7 +745,7 @@
},
"008-fork=Shanghai-exact_intrinsic_gas-max_size_zeros-max_size_zeros_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -530,7 +842,7 @@
},
"009-fork=Shanghai-exact_intrinsic_gas-max_size_ones-max_size_ones_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -627,7 +939,7 @@
},
"010-fork=Shanghai-exact_intrinsic_gas-empty-empty_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -730,7 +1042,7 @@
},
"011-fork=Shanghai-exact_intrinsic_gas-single_byte-single_byte_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -833,7 +1145,7 @@
},
"012-fork=Shanghai-exact_intrinsic_gas-32_bytes-32_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -930,7 +1242,7 @@
},
"013-fork=Shanghai-exact_intrinsic_gas-33_bytes-33_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1027,7 +1339,7 @@
},
"014-fork=Shanghai-exact_intrinsic_gas-49120_bytes-49120_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1124,7 +1436,7 @@
},
"015-fork=Shanghai-exact_intrinsic_gas-49121_bytes-49121_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1221,7 +1533,7 @@
},
"016-fork=Shanghai-too_little_execution_gas-max_size_zeros-max_size_zeros_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1318,7 +1630,7 @@
},
"017-fork=Shanghai-too_little_execution_gas-max_size_ones-max_size_ones_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1415,7 +1727,7 @@
},
"018-fork=Shanghai-too_little_execution_gas-32_bytes-32_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1512,7 +1824,7 @@
},
"019-fork=Shanghai-too_little_execution_gas-33_bytes-33_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1609,7 +1921,7 @@
},
"020-fork=Shanghai-too_little_execution_gas-49120_bytes-49120_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1706,7 +2018,7 @@
},
"021-fork=Shanghai-too_little_execution_gas-49121_bytes-49121_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1803,7 +2115,7 @@
},
"022-fork=Shanghai-exact_execution_gas-max_size_zeros-max_size_zeros_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -1906,7 +2218,7 @@
},
"023-fork=Shanghai-exact_execution_gas-max_size_ones-max_size_ones_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2009,7 +2321,7 @@
},
"024-fork=Shanghai-exact_execution_gas-empty-empty_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2112,7 +2424,7 @@
},
"025-fork=Shanghai-exact_execution_gas-single_byte-single_byte_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2215,7 +2527,7 @@
},
"026-fork=Shanghai-exact_execution_gas-32_bytes-32_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2318,7 +2630,7 @@
},
"027-fork=Shanghai-exact_execution_gas-33_bytes-33_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2421,7 +2733,7 @@
},
"028-fork=Shanghai-exact_execution_gas-49120_bytes-49120_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2524,7 +2836,7 @@
},
"029-fork=Shanghai-exact_execution_gas-49121_bytes-49121_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2627,7 +2939,7 @@
},
"030-fork=Cancun-too_little_intrinsic_gas-max_size_zeros-max_size_zeros_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2660,7 +2972,49 @@
{
"rlp": "0xf9c293f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a8303db738080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721a040b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x03db73",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0x7a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721",
+ "s": "0x40b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -2696,7 +3050,7 @@
},
"031-fork=Cancun-too_little_intrinsic_gas-max_size_ones-max_size_ones_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2729,7 +3083,49 @@
{
"rlp": "0xf9c293f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a830cdae38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a02e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425fa00fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87cc0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x0cdae3",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101",
+ "v": "0x26",
+ "r": "0x2e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425f",
+ "s": "0x0fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87c",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -2765,7 +3161,7 @@
},
"032-fork=Cancun-too_little_intrinsic_gas-empty-empty_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2798,7 +3194,49 @@
{
"rlp": "0xf9028ef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcf07",
+ "to": "",
+ "value": "0x00",
+ "data": "0x",
+ "v": "0x25",
+ "r": "0x0372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4f",
+ "s": "0x4afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -2834,7 +3272,7 @@
},
"033-fork=Cancun-too_little_intrinsic_gas-single_byte-single_byte_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2867,7 +3305,49 @@
{
"rlp": "0xf9028ef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0d80800025a082244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006a043f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcf0d",
+ "to": "",
+ "value": "0x00",
+ "data": "0x00",
+ "v": "0x25",
+ "r": "0x82244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006",
+ "s": "0x43f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -2903,7 +3383,7 @@
},
"034-fork=Cancun-too_little_intrinsic_gas-32_bytes-32_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -2936,7 +3416,49 @@
{
"rlp": "0xf902aef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86df86b800a82cff58080a0610001600081600b8239f300000000000000000000000000000000000000000025a07dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8a01570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4afc0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcff5",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000",
+ "v": "0x25",
+ "r": "0x7dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8",
+ "s": "0x1570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4af",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -2972,7 +3494,7 @@
},
"035-fork=Cancun-too_little_intrinsic_gas-33_bytes-33_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3005,7 +3527,49 @@
{
"rlp": "0xf902aff9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86ef86c800a82cffb8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a010f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781a03d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0xcffb",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0x10f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781",
+ "s": "0x3d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -3041,7 +3605,7 @@
},
"036-fork=Cancun-too_little_intrinsic_gas-49120_bytes-49120_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3074,7 +3638,49 @@
{
"rlp": "0xf9c273f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c031f9c02e800a8303daf18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a03bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24a033ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbcc0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x03daf1",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x26",
+ "r": "0x3bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24",
+ "s": "0x33ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbc",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -3110,7 +3716,7 @@
},
"037-fork=Cancun-too_little_intrinsic_gas-49121_bytes-49121_bytes_too_little_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3143,7 +3749,49 @@
{
"rlp": "0xf9c274f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c032f9c02f800a8303daf78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0dadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0ca03c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742c0c0",
"expectException": "intrinsic gas too low",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x0a",
+ "gasLimit": "0x03daf7",
+ "to": "",
+ "value": "0x00",
+ "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "v": "0x25",
+ "r": "0xdadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0c",
+ "s": "0x3c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": []
+ }
}
],
"lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a",
@@ -3179,7 +3827,7 @@
},
"038-fork=Cancun-exact_intrinsic_gas-max_size_zeros-max_size_zeros_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3296,7 +3944,7 @@
},
"039-fork=Cancun-exact_intrinsic_gas-max_size_ones-max_size_ones_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3413,7 +4061,7 @@
},
"040-fork=Cancun-exact_intrinsic_gas-empty-empty_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3536,7 +4184,7 @@
},
"041-fork=Cancun-exact_intrinsic_gas-single_byte-single_byte_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3659,7 +4307,7 @@
},
"042-fork=Cancun-exact_intrinsic_gas-32_bytes-32_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3776,7 +4424,7 @@
},
"043-fork=Cancun-exact_intrinsic_gas-33_bytes-33_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -3893,7 +4541,7 @@
},
"044-fork=Cancun-exact_intrinsic_gas-49120_bytes-49120_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4010,7 +4658,7 @@
},
"045-fork=Cancun-exact_intrinsic_gas-49121_bytes-49121_bytes_exact_intrinsic_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4127,7 +4775,7 @@
},
"046-fork=Cancun-too_little_execution_gas-max_size_zeros-max_size_zeros_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4244,7 +4892,7 @@
},
"047-fork=Cancun-too_little_execution_gas-max_size_ones-max_size_ones_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4361,7 +5009,7 @@
},
"048-fork=Cancun-too_little_execution_gas-32_bytes-32_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4478,7 +5126,7 @@
},
"049-fork=Cancun-too_little_execution_gas-33_bytes-33_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4595,7 +5243,7 @@
},
"050-fork=Cancun-too_little_execution_gas-49120_bytes-49120_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4712,7 +5360,7 @@
},
"051-fork=Cancun-too_little_execution_gas-49121_bytes-49121_bytes_too_little_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4829,7 +5477,7 @@
},
"052-fork=Cancun-exact_execution_gas-max_size_zeros-max_size_zeros_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -4952,7 +5600,7 @@
},
"053-fork=Cancun-exact_execution_gas-max_size_ones-max_size_ones_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5075,7 +5723,7 @@
},
"054-fork=Cancun-exact_execution_gas-empty-empty_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5198,7 +5846,7 @@
},
"055-fork=Cancun-exact_execution_gas-single_byte-single_byte_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5321,7 +5969,7 @@
},
"056-fork=Cancun-exact_execution_gas-32_bytes-32_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5444,7 +6092,7 @@
},
"057-fork=Cancun-exact_execution_gas-33_bytes-33_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5567,7 +6215,7 @@
},
"058-fork=Cancun-exact_execution_gas-49120_bytes-49120_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
@@ -5690,7 +6338,7 @@
},
"059-fork=Cancun-exact_execution_gas-49121_bytes-49121_bytes_exact_execution_gas": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md",
"reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json
index 61cb2f7e15f..5a18bc67626 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -174,7 +174,7 @@
},
"001-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json
index 6daaac2c274..c36cb8c6855 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -138,7 +138,7 @@
},
"001-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json
index 70aeb5f3546..067bc861937 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -7278,7 +7278,7 @@
},
"001-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json
index 2bf4102a04f..d6e4c8e2d13 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-test_case=single_block-single_block": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1266,7 +1266,7 @@
},
"001-fork=Shanghai-test_case=multiple_blocks-multiple_blocks": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2811,7 +2811,7 @@
},
"002-fork=Cancun-test_case=single_block-single_block": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -4096,7 +4096,7 @@
},
"003-fork=Cancun-test_case=multiple_blocks-multiple_blocks": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json
index 5cc5f9a776f..1ae43ec99d8 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-without_tx_value-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -111,7 +111,7 @@
},
"001-fork=Shanghai-with_tx_value-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -221,7 +221,7 @@
},
"002-fork=Cancun-without_tx_value-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -351,7 +351,7 @@
},
"003-fork=Cancun-with_tx_value-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json
index e251282637a..c442acb123c 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -250,7 +250,7 @@
},
"001-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json
index 173482f21cd..771d89d620d 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -129,7 +129,7 @@
},
"001-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json
index 39c15efaf6a..9d64b85b3fc 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -173,7 +173,7 @@
},
"001-fork=Cancun": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json
index bdf19ab7ec3..83b8252b169 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-tx_in_withdrawals_block": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -31,7 +31,53 @@
{
"rlp": "0xf9029ef90217a08a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6ff865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209",
"expectException": "Transaction without funds",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x1152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f",
+ "hash": "0x92d764bca1c2535ce981819b338bae5109125a89c5d4b58b3fb0bd0be80f4b89"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x3b9aca00",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "v": "0x26",
+ "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2",
+ "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": [
+ {
+ "index": "0x00",
+ "validatorIndex": "0x00",
+ "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "amount": "0x5209"
+ }
+ ]
+ }
}
],
"lastblockhash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5",
@@ -55,7 +101,7 @@
},
"001-fork=Shanghai-tx_after_withdrawals_block": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -186,7 +232,7 @@
},
"002-fork=Cancun-tx_in_withdrawals_block": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -219,7 +265,56 @@
{
"rlp": "0xf902c1f9023aa093ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f8080a00000000000000000000000000000000000000000000000000000000000000000f865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209",
"expectException": "Transaction without funds",
- "blocknumber": "1"
+ "rlp_decoded": {
+ "blockHeader": {
+ "parentHash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf",
+ "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
+ "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
+ "stateRoot": "0x682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67d",
+ "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
+ "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "difficulty": "0x00",
+ "number": "0x01",
+ "gasLimit": "0x016345785d8a0000",
+ "gasUsed": "0x00",
+ "timestamp": "0x0c",
+ "extraData": "0x",
+ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x0000000000000000",
+ "baseFeePerGas": "0x07",
+ "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f",
+ "blobGasUsed": "0x00",
+ "excessBlobGas": "0x00",
+ "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
+ "hash": "0x6ef6a053154da7e067734d8b7066e8784eb979005a969a02858c9ee6c26f0c04"
+ },
+ "transactions": [
+ {
+ "type": "0x00",
+ "chainId": "0x01",
+ "nonce": "0x00",
+ "gasPrice": "0x3b9aca00",
+ "gasLimit": "0x5208",
+ "to": "0x0000000000000000000000000000000000000100",
+ "value": "0x00",
+ "data": "0x",
+ "v": "0x26",
+ "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2",
+ "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1",
+ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
+ }
+ ],
+ "uncleHeaders": [],
+ "withdrawals": [
+ {
+ "index": "0x00",
+ "validatorIndex": "0x00",
+ "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
+ "amount": "0x5209"
+ }
+ ]
+ }
}
],
"lastblockhash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf",
@@ -255,7 +350,7 @@
},
"003-fork=Cancun-tx_after_withdrawals_block": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json
index 3b52637a694..fa689a8f013 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-precompile=9-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -132,7 +132,7 @@
},
"001-fork=Shanghai-precompile=9-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -269,7 +269,7 @@
},
"002-fork=Shanghai-precompile=5-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -400,7 +400,7 @@
},
"003-fork=Shanghai-precompile=5-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -537,7 +537,7 @@
},
"004-fork=Shanghai-precompile=6-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -668,7 +668,7 @@
},
"005-fork=Shanghai-precompile=6-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -805,7 +805,7 @@
},
"006-fork=Shanghai-precompile=7-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -936,7 +936,7 @@
},
"007-fork=Shanghai-precompile=7-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1073,7 +1073,7 @@
},
"008-fork=Shanghai-precompile=8-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1204,7 +1204,7 @@
},
"009-fork=Shanghai-precompile=8-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1341,7 +1341,7 @@
},
"010-fork=Shanghai-precompile=1-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1472,7 +1472,7 @@
},
"011-fork=Shanghai-precompile=1-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1609,7 +1609,7 @@
},
"012-fork=Shanghai-precompile=2-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1740,7 +1740,7 @@
},
"013-fork=Shanghai-precompile=2-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -1877,7 +1877,7 @@
},
"014-fork=Shanghai-precompile=3-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2008,7 +2008,7 @@
},
"015-fork=Shanghai-precompile=3-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2145,7 +2145,7 @@
},
"016-fork=Shanghai-precompile=4-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2276,7 +2276,7 @@
},
"017-fork=Shanghai-precompile=4-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2413,7 +2413,7 @@
},
"018-fork=Cancun-precompile=10-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2568,7 +2568,7 @@
},
"019-fork=Cancun-precompile=10-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2729,7 +2729,7 @@
},
"020-fork=Cancun-precompile=9-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -2884,7 +2884,7 @@
},
"021-fork=Cancun-precompile=9-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -3045,7 +3045,7 @@
},
"022-fork=Cancun-precompile=5-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -3200,7 +3200,7 @@
},
"023-fork=Cancun-precompile=5-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -3361,7 +3361,7 @@
},
"024-fork=Cancun-precompile=6-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -3516,7 +3516,7 @@
},
"025-fork=Cancun-precompile=6-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -3677,7 +3677,7 @@
},
"026-fork=Cancun-precompile=7-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -3832,7 +3832,7 @@
},
"027-fork=Cancun-precompile=7-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -3993,7 +3993,7 @@
},
"028-fork=Cancun-precompile=8-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -4148,7 +4148,7 @@
},
"029-fork=Cancun-precompile=8-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -4309,7 +4309,7 @@
},
"030-fork=Cancun-precompile=1-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -4464,7 +4464,7 @@
},
"031-fork=Cancun-precompile=1-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -4625,7 +4625,7 @@
},
"032-fork=Cancun-precompile=2-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -4780,7 +4780,7 @@
},
"033-fork=Cancun-precompile=2-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -4941,7 +4941,7 @@
},
"034-fork=Cancun-precompile=3-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -5096,7 +5096,7 @@
},
"035-fork=Cancun-precompile=3-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -5257,7 +5257,7 @@
},
"036-fork=Cancun-precompile=4-amount=0": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -5412,7 +5412,7 @@
},
"037-fork=Cancun-precompile=4-amount=1": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json
index 444107ced20..bf9c4ee7b80 100644
--- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json
+++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json
@@ -1,7 +1,7 @@
{
"000-fork=Shanghai-two_withdrawals_no_value-two_withdrawals_no_value": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -102,7 +102,7 @@
},
"001-fork=Shanghai-three_withdrawals_one_with_value-three_withdrawals_one_with_value": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -215,7 +215,7 @@
},
"002-fork=Shanghai-four_withdrawals_one_with_value_one_with_max-four_withdrawals_one_with_value_one_with_max": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -340,7 +340,7 @@
},
"003-fork=Shanghai-four_withdrawals_one_with_value_one_with_max_reversed_order-four_withdrawals_one_with_value_one_with_max_reversed_order": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -465,7 +465,7 @@
},
"004-fork=Cancun-two_withdrawals_no_value-two_withdrawals_no_value": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -586,7 +586,7 @@
},
"005-fork=Cancun-three_withdrawals_one_with_value-three_withdrawals_one_with_value": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -719,7 +719,7 @@
},
"006-fork=Cancun-four_withdrawals_one_with_value_one_with_max-four_withdrawals_one_with_value_one_with_max": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
@@ -864,7 +864,7 @@
},
"007-fork=Cancun-four_withdrawals_one_with_value_one_with_max_reversed_order-four_withdrawals_one_with_value_one_with_max_reversed_order": {
"_info": {
- "filling-transition-tool": "evm version 1.13.0-unstable-fd389791-20230926",
+ "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019",
"reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md",
"reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34"
},
diff --git a/tests/state_test.go b/tests/state_test.go
index 711294ef653..844288364c2 100644
--- a/tests/state_test.go
+++ b/tests/state_test.go
@@ -28,9 +28,9 @@ import (
"testing"
"github.com/ledgerwatch/erigon-lib/common/datadir"
+ "github.com/ledgerwatch/erigon/core/state/temporal"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/core/state/temporal"
"github.com/ledgerwatch/erigon/core/vm"
"github.com/ledgerwatch/erigon/eth/tracers/logger"
)
@@ -38,7 +38,7 @@ import (
func TestState(t *testing.T) {
defer log.Root().SetHandler(log.Root().GetHandler())
log.Root().SetHandler(log.LvlFilterHandler(log.LvlError, log.StderrHandler))
- if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {
+ if runtime.GOOS == "windows" {
t.Skip("fix me on win please") // it's too slow on win and stops on macos, need generally improve speed of this tests
}
//t.Parallel()
@@ -49,12 +49,12 @@ func TestState(t *testing.T) {
st.skipLoad(`^stTimeConsuming/`)
st.skipLoad(`.*vmPerformance/loop.*`)
+ _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil)
st.walk(t, stateTestDir, func(t *testing.T, name string, test *StateTest) {
for _, subtest := range test.Subtests() {
subtest := subtest
key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
t.Run(key, func(t *testing.T) {
- _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil)
withTrace(t, func(vmconfig vm.Config) error {
tx, err := db.BeginRw(context.Background())
if err != nil {
diff --git a/tests/state_test_util.go b/tests/state_test_util.go
index a95d9204ef8..98b5e9793a3 100644
--- a/tests/state_test_util.go
+++ b/tests/state_test_util.go
@@ -264,8 +264,8 @@ func (t *StateTest) RunNoVerify(tx kv.RwTx, subtest StateSubtest, vmconfig vm.Co
if err != nil {
return nil, libcommon.Hash{}, err
}
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
for k, v, err := c.First(); k != nil; k, v, err = c.Next() {
if err != nil {
return nil, libcommon.Hash{}, fmt.Errorf("interate over plain state: %w", err)
@@ -288,11 +288,11 @@ func (t *StateTest) RunNoVerify(tx kv.RwTx, subtest StateSubtest, vmconfig vm.Co
h.Sha.Write(k[length.Addr+length.Incarnation:])
//nolint:errcheck
h.Sha.Read(newK[length.Hash+length.Incarnation:])
- if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil {
+ if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil {
return nil, libcommon.Hash{}, fmt.Errorf("insert hashed key: %w", err)
}
} else {
- if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil {
+ if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil {
return nil, libcommon.Hash{}, fmt.Errorf("insert hashed key: %w", err)
}
}
diff --git a/turbo/adapter/ethapi/api.go b/turbo/adapter/ethapi/api.go
index 2e55ac3a45f..a640a8f767d 100644
--- a/turbo/adapter/ethapi/api.go
+++ b/turbo/adapter/ethapi/api.go
@@ -19,6 +19,7 @@ package ethapi
import (
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"github.com/holiman/uint256"
@@ -28,7 +29,6 @@ import (
"github.com/ledgerwatch/log/v3"
"github.com/ledgerwatch/erigon/accounts/abi"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/types"
diff --git a/turbo/adapter/ethapi/get_proof.go b/turbo/adapter/ethapi/get_proof.go
index 49832b7f910..ddeda5bd466 100644
--- a/turbo/adapter/ethapi/get_proof.go
+++ b/turbo/adapter/ethapi/get_proof.go
@@ -2,11 +2,11 @@ package ethapi
import (
"bytes"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/length"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/turbo/trie"
)
diff --git a/turbo/app/snapshots_cmd.go b/turbo/app/snapshots_cmd.go
index e4989a2dffb..686ea81d9e1 100644
--- a/turbo/app/snapshots_cmd.go
+++ b/turbo/app/snapshots_cmd.go
@@ -21,7 +21,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/datadir"
"github.com/ledgerwatch/erigon-lib/common/dir"
"github.com/ledgerwatch/erigon-lib/compress"
- "github.com/ledgerwatch/erigon-lib/downloader/snaptype"
"github.com/ledgerwatch/erigon-lib/etl"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/kvcfg"
@@ -128,11 +127,6 @@ var (
Usage: "Do operation every N blocks",
Value: 1_000,
}
- SnapshotSegmentSizeFlag = cli.Uint64Flag{
- Name: "segment.size",
- Usage: "Amount of blocks in each segment",
- Value: snaptype.Erigon2SegmentSize,
- }
SnapshotRebuildFlag = cli.BoolFlag{
Name: "rebuild",
Usage: "Force rebuild",
@@ -401,7 +395,7 @@ func doRetireCommand(cliCtx *cli.Context) error {
db := mdbx.NewMDBX(logger).Label(kv.ChainDB).Path(dirs.Chaindata).MustOpen()
defer db.Close()
- cfg := ethconfig.NewSnapCfg(true, true, true)
+ cfg := ethconfig.NewSnapCfg(true, false, true)
blockSnapshots := freezeblocks.NewRoSnapshots(cfg, dirs.Snap, logger)
borSnapshots := freezeblocks.NewBorRoSnapshots(cfg, dirs.Snap, logger)
if err := blockSnapshots.ReopenFolder(); err != nil {
@@ -435,11 +429,41 @@ func doRetireCommand(cliCtx *cli.Context) error {
}
logger.Info("Params", "from", from, "to", to, "every", every)
+ {
+ logEvery := time.NewTicker(10 * time.Second)
+ defer logEvery.Stop()
+
+ for j := 0; j < 10_000; j++ { // prune happens by small steps, so need many runs
+ if err := db.Update(ctx, func(tx kv.RwTx) error {
+ if err := br.PruneAncientBlocks(tx, 100, false /* includeBor */); err != nil {
+ return err
+ }
+
+ select {
+ case <-ctx.Done():
+ return ctx.Err()
+ case <-logEvery.C:
+ firstNonGenesisHeader, err := rawdbv3.SecondKey(tx, kv.Headers)
+ if err != nil {
+ return err
+ }
+ if len(firstNonGenesisHeader) > 0 {
+ logger.Info("Prunning old blocks", "progress", binary.BigEndian.Uint64(firstNonGenesisHeader))
+ }
+ default:
+ }
+ return nil
+ }); err != nil {
+ return err
+ }
+ }
+ }
+
for i := from; i < to; i += every {
- if err := br.RetireBlocks(ctx, i, i+every, log.LvlInfo, nil); err != nil {
+ if err := br.RetireBlocks(ctx, i, i+every, log.LvlInfo, nil, nil); err != nil {
panic(err)
}
- if err := db.UpdateNosync(ctx, func(tx kv.RwTx) error {
+ if err := db.Update(ctx, func(tx kv.RwTx) error {
if err := rawdb.WriteSnapshots(tx, blockReader.FrozenFiles(), agg.Files()); err != nil {
return err
}
diff --git a/turbo/cli/default_flags.go b/turbo/cli/default_flags.go
index 40fad68e151..a65180a7137 100644
--- a/turbo/cli/default_flags.go
+++ b/turbo/cli/default_flags.go
@@ -51,6 +51,7 @@ var DefaultFlags = []cli.Flag{
&BadBlockFlag,
&utils.HTTPEnabledFlag,
+ &utils.HTTPServerEnabledFlag,
&utils.GraphQLEnabledFlag,
&utils.HTTPListenAddrFlag,
&utils.HTTPPortFlag,
@@ -164,6 +165,9 @@ var DefaultFlags = []cli.Flag{
&utils.OtsSearchMaxCapFlag,
&utils.SilkwormPathFlag,
+ &utils.SilkwormExecutionFlag,
+ &utils.SilkwormRpcDaemonFlag,
+ &utils.SilkwormSentryFlag,
&utils.TrustedSetupFile,
}
diff --git a/turbo/cli/flags.go b/turbo/cli/flags.go
index e8edff7a466..80bd6210f42 100644
--- a/turbo/cli/flags.go
+++ b/turbo/cli/flags.go
@@ -4,6 +4,8 @@ import (
"fmt"
"time"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+
"github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -20,7 +22,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg"
"github.com/ledgerwatch/erigon/cmd/utils"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/eth/ethconfig"
"github.com/ledgerwatch/erigon/ethdb/prune"
"github.com/ledgerwatch/erigon/node/nodecfg"
@@ -356,8 +357,9 @@ func setEmbeddedRpcDaemon(ctx *cli.Context, cfg *nodecfg.Config, logger log.Logg
logger.Info("starting HTTP APIs", "APIs", apis)
c := &httpcfg.HttpCfg{
- Enabled: ctx.Bool(utils.HTTPEnabledFlag.Name),
- Dirs: cfg.Dirs,
+ Enabled: ctx.Bool(utils.HTTPEnabledFlag.Name),
+ HttpServerEnabled: ctx.Bool(utils.HTTPServerEnabledFlag.Name),
+ Dirs: cfg.Dirs,
TLSKeyFile: cfg.TLSKeyFile,
TLSCACert: cfg.TLSCACert,
diff --git a/turbo/debug/flags.go b/turbo/debug/flags.go
index 69931546f9b..4405cb81e3d 100644
--- a/turbo/debug/flags.go
+++ b/turbo/debug/flags.go
@@ -24,6 +24,8 @@ import (
"os"
"path/filepath"
+ "github.com/ledgerwatch/erigon-lib/metrics"
+
"github.com/ledgerwatch/log/v3"
"github.com/pelletier/go-toml"
"github.com/spf13/cobra"
@@ -32,7 +34,7 @@ import (
"github.com/ledgerwatch/erigon/common/fdlimit"
"github.com/ledgerwatch/erigon/eth/tracers"
- "github.com/ledgerwatch/erigon/metrics"
+
"github.com/ledgerwatch/erigon/turbo/logging"
"github.com/ledgerwatch/erigon/turbo/tracing"
)
diff --git a/turbo/engineapi/engine_block_downloader/block_downloader.go b/turbo/engineapi/engine_block_downloader/block_downloader.go
index b14f52e9abf..7c08b42ee86 100644
--- a/turbo/engineapi/engine_block_downloader/block_downloader.go
+++ b/turbo/engineapi/engine_block_downloader/block_downloader.go
@@ -5,6 +5,7 @@ import (
"context"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/big"
"sync"
"sync/atomic"
@@ -17,7 +18,6 @@ import (
"github.com/ledgerwatch/erigon-lib/etl"
"github.com/ledgerwatch/erigon-lib/gointerfaces/execution"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/turbo/engineapi/engine_helpers/fork_validator.go b/turbo/engineapi/engine_helpers/fork_validator.go
index f25994f73d0..9f742279a95 100644
--- a/turbo/engineapi/engine_helpers/fork_validator.go
+++ b/turbo/engineapi/engine_helpers/fork_validator.go
@@ -17,12 +17,12 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru"
"sync"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/membatchwithdb"
- "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/eth/stagedsync/stages"
"github.com/ledgerwatch/erigon/turbo/engineapi/engine_types"
@@ -272,7 +272,6 @@ func (fv *ForkValidator) validateAndStorePayload(tx kv.RwTx, header *types.Heade
if criticalError != nil {
return
}
- fmt.Println(latestValidNumber)
latestValidHash, criticalError = rawdb.ReadCanonicalHash(tx, latestValidNumber)
if criticalError != nil {
return
diff --git a/turbo/engineapi/engine_server.go b/turbo/engineapi/engine_server.go
index a461006e1b8..a29e2031dd8 100644
--- a/turbo/engineapi/engine_server.go
+++ b/turbo/engineapi/engine_server.go
@@ -5,6 +5,8 @@ import (
"encoding/binary"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+ "github.com/ledgerwatch/erigon/cl/clparams"
"math/big"
"reflect"
"sync"
@@ -22,11 +24,9 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
libstate "github.com/ledgerwatch/erigon-lib/state"
- "github.com/ledgerwatch/erigon/cl/clparams"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/merge"
diff --git a/turbo/engineapi/engine_types/jsonrpc.go b/turbo/engineapi/engine_types/jsonrpc.go
index 0d5d9f13f1f..3e3bbde23e8 100644
--- a/turbo/engineapi/engine_types/jsonrpc.go
+++ b/turbo/engineapi/engine_types/jsonrpc.go
@@ -5,12 +5,13 @@ import (
"encoding/json"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon-lib/gointerfaces"
"github.com/ledgerwatch/erigon-lib/gointerfaces/execution"
types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/turbo/engineapi/interface.go b/turbo/engineapi/interface.go
index 7c8468a61da..cca6c812af3 100644
--- a/turbo/engineapi/interface.go
+++ b/turbo/engineapi/interface.go
@@ -3,8 +3,8 @@ package engineapi
import (
"context"
"github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/turbo/engineapi/engine_types"
)
diff --git a/turbo/execution/eth1/block_building.go b/turbo/execution/eth1/block_building.go
index 609cb794acf..6e8174e782d 100644
--- a/turbo/execution/eth1/block_building.go
+++ b/turbo/execution/eth1/block_building.go
@@ -12,7 +12,6 @@ import (
"github.com/ledgerwatch/erigon-lib/gointerfaces/execution"
types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
@@ -32,7 +31,7 @@ func (e *EthereumExecutionModule) checkWithdrawalsPresence(time uint64, withdraw
}
func (e *EthereumExecutionModule) evictOldBuilders() {
- ids := common.SortedKeys(e.builders)
+ ids := libcommon.SortedKeys(e.builders)
// remove old builders so that at most MaxBuilders - 1 remain
for i := 0; i <= len(e.builders)-engine_helpers.MaxBuilders; i++ {
diff --git a/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go b/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go
index 15324177108..c538c28023c 100644
--- a/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go
+++ b/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go
@@ -247,8 +247,12 @@ func (c ChainReaderWriterEth1) IsCanonicalHash(hash libcommon.Hash) (bool, error
return resp.Canonical, nil
}
-func (ChainReaderWriterEth1) FrozenBlocks() uint64 {
- panic("ChainReaderEth1.FrozenBlocks not implemented")
+func (c ChainReaderWriterEth1) FrozenBlocks() uint64 {
+ ret, err := c.executionModule.FrozenBlocks(c.ctx, &emptypb.Empty{})
+ if err != nil {
+ panic(err)
+ }
+ return ret.FrozenBlocks
}
const retryTimeout = 10 * time.Millisecond
diff --git a/turbo/execution/eth1/forkchoice.go b/turbo/execution/eth1/forkchoice.go
index b48f3c686ee..b6f6527e181 100644
--- a/turbo/execution/eth1/forkchoice.go
+++ b/turbo/execution/eth1/forkchoice.go
@@ -283,6 +283,10 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas
sendForkchoiceErrorWithoutWaiting(outcomeCh, err)
return
}
+ if err := stages.SaveStageProgress(tx, stages.BlockHashes, fcuHeader.Number.Uint64()); err != nil {
+ sendForkchoiceErrorWithoutWaiting(outcomeCh, err)
+ return
+ }
if err := stages.SaveStageProgress(tx, stages.Bodies, fcuHeader.Number.Uint64()); err != nil {
sendForkchoiceErrorWithoutWaiting(outcomeCh, err)
return
@@ -315,8 +319,6 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas
status = execution.ExecutionStatus_BadBlock
if log {
e.logger.Warn("bad forkchoice", "head", headHash, "hash", blockHash)
- h, _ := e.getHeader(ctx, tx, headHash, *headNumber)
- fmt.Println(h.Hash())
}
} else {
valid, err := e.verifyForkchoiceHashes(ctx, tx, blockHash, finalizedHash, safeHash)
diff --git a/turbo/execution/eth1/getters.go b/turbo/execution/eth1/getters.go
index 3ba9d136dc8..b282bce4e01 100644
--- a/turbo/execution/eth1/getters.go
+++ b/turbo/execution/eth1/getters.go
@@ -294,3 +294,9 @@ func (e *EthereumExecutionModule) GetForkChoice(ctx context.Context, _ *emptypb.
SafeBlockHash: gointerfaces.ConvertHashToH256(rawdb.ReadForkchoiceSafe(tx)),
}, nil
}
+
+func (e *EthereumExecutionModule) FrozenBlocks(ctx context.Context, _ *emptypb.Empty) (*execution.FrozenBlocksResponse, error) {
+ return &execution.FrozenBlocksResponse{
+ FrozenBlocks: e.blockReader.FrozenBlocks(),
+ }, nil
+}
diff --git a/turbo/jsonrpc/call_traces_test.go b/turbo/jsonrpc/call_traces_test.go
index d78714682dd..4fefb1897ca 100644
--- a/turbo/jsonrpc/call_traces_test.go
+++ b/turbo/jsonrpc/call_traces_test.go
@@ -2,6 +2,7 @@ package jsonrpc
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"sync"
"testing"
@@ -13,7 +14,6 @@ import (
"github.com/valyala/fastjson"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/turbo/stages/mock"
diff --git a/turbo/jsonrpc/debug_api.go b/turbo/jsonrpc/debug_api.go
index ab91c40a0a8..839d39584ef 100644
--- a/turbo/jsonrpc/debug_api.go
+++ b/turbo/jsonrpc/debug_api.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
jsoniter "github.com/json-iterator/go"
"github.com/ledgerwatch/erigon-lib/common"
@@ -12,7 +13,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
"github.com/ledgerwatch/erigon/common/changeset"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/state"
"github.com/ledgerwatch/erigon/core/types/accounts"
diff --git a/turbo/jsonrpc/debug_api_test.go b/turbo/jsonrpc/debug_api_test.go
index 33ea0e579f3..f4c0abba824 100644
--- a/turbo/jsonrpc/debug_api_test.go
+++ b/turbo/jsonrpc/debug_api_test.go
@@ -14,7 +14,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
"github.com/ledgerwatch/erigon-lib/kv/order"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
- common2 "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/eth/tracers"
"github.com/ledgerwatch/erigon/rpc"
@@ -334,7 +333,7 @@ func TestAccountRange(t *testing.T) {
require.Equal(t, 35, len(result.Accounts[addr].Storage))
require.Equal(t, 1, int(result.Accounts[addr].Nonce))
for _, v := range result.Accounts {
- hashedCode, _ := common2.HashData(v.Code)
+ hashedCode, _ := common.HashData(v.Code)
require.Equal(t, v.CodeHash.String(), hashedCode.String())
}
})
diff --git a/turbo/jsonrpc/erigon_api.go b/turbo/jsonrpc/erigon_api.go
index 8c869d79baa..4b1bd336614 100644
--- a/turbo/jsonrpc/erigon_api.go
+++ b/turbo/jsonrpc/erigon_api.go
@@ -2,6 +2,7 @@ package jsonrpc
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common"
@@ -9,7 +10,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/p2p"
"github.com/ledgerwatch/erigon/rpc"
diff --git a/turbo/jsonrpc/erigon_block.go b/turbo/jsonrpc/erigon_block.go
index d61069bad63..879dbfd26fd 100644
--- a/turbo/jsonrpc/erigon_block.go
+++ b/turbo/jsonrpc/erigon_block.go
@@ -5,6 +5,7 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"sort"
"github.com/holiman/uint256"
@@ -16,7 +17,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2"
"github.com/ledgerwatch/erigon/turbo/services"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/core/types/accounts"
diff --git a/turbo/jsonrpc/erigon_system.go b/turbo/jsonrpc/erigon_system.go
index 5513d186685..eac0b351554 100644
--- a/turbo/jsonrpc/erigon_system.go
+++ b/turbo/jsonrpc/erigon_system.go
@@ -3,10 +3,10 @@ package jsonrpc
import (
"context"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
borfinality "github.com/ledgerwatch/erigon/consensus/bor/finality"
"github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist"
"github.com/ledgerwatch/erigon/core/forkid"
diff --git a/turbo/jsonrpc/eth_accounts.go b/turbo/jsonrpc/eth_accounts.go
index 8653a2c6280..dc3c41f5fcc 100644
--- a/turbo/jsonrpc/eth_accounts.go
+++ b/turbo/jsonrpc/eth_accounts.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -15,7 +16,6 @@ import (
txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/turbo/jsonrpc/eth_api.go b/turbo/jsonrpc/eth_api.go
index 51c2b1cf086..650ab85d5ad 100644
--- a/turbo/jsonrpc/eth_api.go
+++ b/turbo/jsonrpc/eth_api.go
@@ -4,6 +4,7 @@ import (
"bytes"
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"sync"
"sync/atomic"
@@ -24,7 +25,6 @@ import (
libstate "github.com/ledgerwatch/erigon-lib/state"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/misc"
diff --git a/turbo/jsonrpc/eth_api_test.go b/turbo/jsonrpc/eth_api_test.go
index 90b7b7c9913..b1d83d3939c 100644
--- a/turbo/jsonrpc/eth_api_test.go
+++ b/turbo/jsonrpc/eth_api_test.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"testing"
"github.com/holiman/uint256"
@@ -10,7 +11,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/rpc"
"github.com/ledgerwatch/erigon/rpc/rpccfg"
diff --git a/turbo/jsonrpc/eth_block.go b/turbo/jsonrpc/eth_block.go
index 23f5fdb1910..25ba7f9505d 100644
--- a/turbo/jsonrpc/eth_block.go
+++ b/turbo/jsonrpc/eth_block.go
@@ -3,6 +3,8 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+ "github.com/ledgerwatch/erigon/cl/clparams"
"math/big"
"time"
@@ -11,8 +13,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/cl/clparams"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
diff --git a/turbo/jsonrpc/eth_block_test.go b/turbo/jsonrpc/eth_block_test.go
index 60d048de256..d4a5f562cf4 100644
--- a/turbo/jsonrpc/eth_block_test.go
+++ b/turbo/jsonrpc/eth_block_test.go
@@ -2,6 +2,7 @@ package jsonrpc
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"testing"
@@ -11,7 +12,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rlp"
diff --git a/turbo/jsonrpc/eth_call.go b/turbo/jsonrpc/eth_call.go
index b4eb732680b..f12238c680a 100644
--- a/turbo/jsonrpc/eth_call.go
+++ b/turbo/jsonrpc/eth_call.go
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"github.com/holiman/uint256"
@@ -18,7 +19,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/state"
"github.com/ledgerwatch/erigon/core/types"
diff --git a/turbo/jsonrpc/eth_callMany.go b/turbo/jsonrpc/eth_callMany.go
index ccf3c7ad442..df7bfd9e377 100644
--- a/turbo/jsonrpc/eth_callMany.go
+++ b/turbo/jsonrpc/eth_callMany.go
@@ -4,6 +4,7 @@ import (
"context"
"encoding/hex"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"time"
@@ -11,7 +12,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/state"
diff --git a/turbo/jsonrpc/eth_callMany_test.go b/turbo/jsonrpc/eth_callMany_test.go
index 9a129c5cc31..2d14e60f200 100644
--- a/turbo/jsonrpc/eth_callMany_test.go
+++ b/turbo/jsonrpc/eth_callMany_test.go
@@ -4,6 +4,7 @@ import (
"context"
"encoding/hex"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"strconv"
"testing"
@@ -14,7 +15,6 @@ import (
"github.com/ledgerwatch/erigon/accounts/abi/bind"
"github.com/ledgerwatch/erigon/accounts/abi/bind/backends"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/params"
diff --git a/turbo/jsonrpc/eth_call_test.go b/turbo/jsonrpc/eth_call_test.go
index 7c3a62b3088..ea7eaabc45e 100644
--- a/turbo/jsonrpc/eth_call_test.go
+++ b/turbo/jsonrpc/eth_call_test.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"testing"
"time"
@@ -18,7 +19,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/kvcache"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
diff --git a/turbo/jsonrpc/eth_mining.go b/turbo/jsonrpc/eth_mining.go
index 5d6898803e7..b32940feac1 100644
--- a/turbo/jsonrpc/eth_mining.go
+++ b/turbo/jsonrpc/eth_mining.go
@@ -3,12 +3,12 @@ package jsonrpc
import (
"context"
"errors"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
"google.golang.org/grpc/status"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/turbo/jsonrpc/eth_receipts.go b/turbo/jsonrpc/eth_receipts.go
index 0a2053ef71c..6567e6e3c82 100644
--- a/turbo/jsonrpc/eth_receipts.go
+++ b/turbo/jsonrpc/eth_receipts.go
@@ -5,6 +5,7 @@ import (
"context"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"github.com/RoaringBitmap/roaring"
@@ -20,7 +21,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/order"
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/misc"
"github.com/ledgerwatch/erigon/core"
diff --git a/turbo/jsonrpc/eth_system.go b/turbo/jsonrpc/eth_system.go
index e0f59067f4e..470b7159341 100644
--- a/turbo/jsonrpc/eth_system.go
+++ b/turbo/jsonrpc/eth_system.go
@@ -2,12 +2,12 @@ package jsonrpc
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"github.com/ledgerwatch/erigon-lib/chain"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/eth/ethconfig"
diff --git a/turbo/jsonrpc/eth_txs.go b/turbo/jsonrpc/eth_txs.go
index c6fbe83770d..174087d5596 100644
--- a/turbo/jsonrpc/eth_txs.go
+++ b/turbo/jsonrpc/eth_txs.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"bytes"
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"github.com/ledgerwatch/erigon-lib/common"
@@ -11,7 +12,6 @@ import (
"github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
"github.com/ledgerwatch/erigon-lib/gointerfaces/types"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
types2 "github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
diff --git a/turbo/jsonrpc/eth_uncles.go b/turbo/jsonrpc/eth_uncles.go
index b5a75666a75..8d0acf589c9 100644
--- a/turbo/jsonrpc/eth_uncles.go
+++ b/turbo/jsonrpc/eth_uncles.go
@@ -2,11 +2,11 @@ package jsonrpc
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
diff --git a/turbo/jsonrpc/graphql_api.go b/turbo/jsonrpc/graphql_api.go
index 97b9b0c082e..b32406e9f82 100644
--- a/turbo/jsonrpc/graphql_api.go
+++ b/turbo/jsonrpc/graphql_api.go
@@ -3,11 +3,11 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
diff --git a/turbo/jsonrpc/net_api.go b/turbo/jsonrpc/net_api.go
index 98e88436b76..f35e36afdf4 100644
--- a/turbo/jsonrpc/net_api.go
+++ b/turbo/jsonrpc/net_api.go
@@ -3,9 +3,9 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"strconv"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/turbo/rpchelper"
)
diff --git a/turbo/jsonrpc/otterscan_api.go b/turbo/jsonrpc/otterscan_api.go
index 5f7c6e3bb4f..89c7e4f8645 100644
--- a/turbo/jsonrpc/otterscan_api.go
+++ b/turbo/jsonrpc/otterscan_api.go
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
+ hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"sync"
@@ -17,7 +18,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/iter"
"github.com/ledgerwatch/erigon-lib/kv/order"
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/consensus/ethash"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
@@ -474,7 +474,7 @@ func (api *OtterscanAPIImpl) traceBlocks(ctx context.Context, addr common.Addres
return results[:totalBlocksTraced], hasMore, nil
}
-func (api *OtterscanAPIImpl) delegateGetBlockByNumber(tx kv.Tx, b *types.Block, number rpc.BlockNumber, inclTx bool) (map[string]interface{}, error) {
+func delegateGetBlockByNumber(tx kv.Tx, b *types.Block, number rpc.BlockNumber, inclTx bool) (map[string]interface{}, error) {
td, err := rawdb.ReadTd(tx, b.Hash(), b.NumberU64())
if err != nil {
return nil, err
@@ -484,7 +484,7 @@ func (api *OtterscanAPIImpl) delegateGetBlockByNumber(tx kv.Tx, b *types.Block,
if !inclTx {
delete(response, "transactions") // workaround for https://github.com/ledgerwatch/erigon/issues/4989#issuecomment-1218415666
}
- response["totalDifficulty"] = (*hexutil.Big)(td)
+ response["totalDifficulty"] = (*hexutil2.Big)(td)
response["transactionCount"] = b.Transactions().Len()
if err == nil && number == rpc.PendingBlockNumber {
@@ -506,7 +506,7 @@ type internalIssuance struct {
Issuance string `json:"issuance,omitempty"`
}
-func (api *OtterscanAPIImpl) delegateIssuance(tx kv.Tx, block *types.Block, chainConfig *chain.Config) (internalIssuance, error) {
+func delegateIssuance(tx kv.Tx, block *types.Block, chainConfig *chain.Config) (internalIssuance, error) {
if chainConfig.Ethash == nil {
// Clique for example has no issuance
return internalIssuance{}, nil
@@ -520,19 +520,14 @@ func (api *OtterscanAPIImpl) delegateIssuance(tx kv.Tx, block *types.Block, chai
}
var ret internalIssuance
- ret.BlockReward = hexutil.EncodeBig(minerReward.ToBig())
- ret.Issuance = hexutil.EncodeBig(issuance.ToBig())
+ ret.BlockReward = hexutil2.EncodeBig(minerReward.ToBig())
+ ret.Issuance = hexutil2.EncodeBig(issuance.ToBig())
issuance.Sub(&issuance, &minerReward)
- ret.UncleReward = hexutil.EncodeBig(issuance.ToBig())
+ ret.UncleReward = hexutil2.EncodeBig(issuance.ToBig())
return ret, nil
}
-func (api *OtterscanAPIImpl) delegateBlockFees(ctx context.Context, tx kv.Tx, block *types.Block, senders []common.Address, chainConfig *chain.Config) (uint64, error) {
- receipts, err := api.getReceipts(ctx, tx, chainConfig, block, senders)
- if err != nil {
- return 0, fmt.Errorf("getReceipts error: %v", err)
- }
-
+func delegateBlockFees(ctx context.Context, tx kv.Tx, block *types.Block, senders []common.Address, chainConfig *chain.Config, receipts types.Receipts) (uint64, error) {
fees := uint64(0)
for _, receipt := range receipts {
txn := block.Transactions()[receipt.TransactionIndex]
@@ -584,7 +579,7 @@ func (api *OtterscanAPIImpl) GetBlockTransactions(ctx context.Context, number rp
return nil, err
}
- getBlockRes, err := api.delegateGetBlockByNumber(tx, b, number, true)
+ getBlockRes, err := delegateGetBlockByNumber(tx, b, number, true)
if err != nil {
return nil, err
}
diff --git a/turbo/jsonrpc/otterscan_block_details.go b/turbo/jsonrpc/otterscan_block_details.go
index 0af04e02340..16401d5aa71 100644
--- a/turbo/jsonrpc/otterscan_block_details.go
+++ b/turbo/jsonrpc/otterscan_block_details.go
@@ -3,11 +3,13 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
+ "github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/rpc"
)
@@ -26,32 +28,9 @@ func (api *OtterscanAPIImpl) GetBlockDetails(ctx context.Context, number rpc.Blo
return nil, nil
}
- chainConfig, err := api.chainConfig(tx)
- if err != nil {
- return nil, err
- }
-
- getBlockRes, err := api.delegateGetBlockByNumber(tx, b, number, false)
- if err != nil {
- return nil, err
- }
- getIssuanceRes, err := api.delegateIssuance(tx, b, chainConfig)
- if err != nil {
- return nil, err
- }
- feesRes, err := api.delegateBlockFees(ctx, tx, b, senders, chainConfig)
- if err != nil {
- return nil, err
- }
-
- response := map[string]interface{}{}
- response["block"] = getBlockRes
- response["issuance"] = getIssuanceRes
- response["totalFees"] = hexutil.Uint64(feesRes)
- return response, nil
+ return api.getBlockDetailsImpl(ctx, tx, b, number, senders)
}
-// TODO: remove duplication with GetBlockDetails
func (api *OtterscanAPIImpl) GetBlockDetailsByHash(ctx context.Context, hash common.Hash) (map[string]interface{}, error) {
tx, err := api.db.BeginRo(ctx)
if err != nil {
@@ -71,21 +50,30 @@ func (api *OtterscanAPIImpl) GetBlockDetailsByHash(ctx context.Context, hash com
if b == nil {
return nil, nil
}
+ number := rpc.BlockNumber(b.Number().Int64())
+
+ return api.getBlockDetailsImpl(ctx, tx, b, number, senders)
+}
+func (api *OtterscanAPIImpl) getBlockDetailsImpl(ctx context.Context, tx kv.Tx, b *types.Block, number rpc.BlockNumber, senders []common.Address) (map[string]interface{}, error) {
chainConfig, err := api.chainConfig(tx)
if err != nil {
return nil, err
}
- getBlockRes, err := api.delegateGetBlockByNumber(tx, b, rpc.BlockNumber(b.Number().Int64()), false)
+ getBlockRes, err := delegateGetBlockByNumber(tx, b, number, false)
if err != nil {
return nil, err
}
- getIssuanceRes, err := api.delegateIssuance(tx, b, chainConfig)
+ getIssuanceRes, err := delegateIssuance(tx, b, chainConfig)
if err != nil {
return nil, err
}
- feesRes, err := api.delegateBlockFees(ctx, tx, b, senders, chainConfig)
+ receipts, err := api.getReceipts(ctx, tx, chainConfig, b, senders)
+ if err != nil {
+ return nil, fmt.Errorf("getReceipts error: %v", err)
+ }
+ feesRes, err := delegateBlockFees(ctx, tx, b, senders, chainConfig, receipts)
if err != nil {
return nil, err
}
diff --git a/turbo/jsonrpc/otterscan_search_backward_test.go b/turbo/jsonrpc/otterscan_search_backward_test.go
index 8be5f918313..4c07ca38efe 100644
--- a/turbo/jsonrpc/otterscan_search_backward_test.go
+++ b/turbo/jsonrpc/otterscan_search_backward_test.go
@@ -2,12 +2,12 @@ package jsonrpc
import (
"bytes"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"testing"
"github.com/RoaringBitmap/roaring/roaring64"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/stretchr/testify/require"
)
diff --git a/turbo/jsonrpc/otterscan_trace_operations.go b/turbo/jsonrpc/otterscan_trace_operations.go
index 6f09c8941a1..2d032b903d0 100644
--- a/turbo/jsonrpc/otterscan_trace_operations.go
+++ b/turbo/jsonrpc/otterscan_trace_operations.go
@@ -2,11 +2,11 @@ package jsonrpc
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/holiman/uint256"
"github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/vm"
)
diff --git a/turbo/jsonrpc/otterscan_trace_transaction.go b/turbo/jsonrpc/otterscan_trace_transaction.go
index ce9b40405cf..37cb3fe3f40 100644
--- a/turbo/jsonrpc/otterscan_trace_transaction.go
+++ b/turbo/jsonrpc/otterscan_trace_transaction.go
@@ -2,6 +2,7 @@ package jsonrpc
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"github.com/holiman/uint256"
@@ -9,7 +10,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/vm"
)
diff --git a/turbo/jsonrpc/parity_api.go b/turbo/jsonrpc/parity_api.go
index 8cf5892405e..05744f3f42d 100644
--- a/turbo/jsonrpc/parity_api.go
+++ b/turbo/jsonrpc/parity_api.go
@@ -11,7 +11,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/order"
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/turbo/rpchelper"
@@ -81,7 +80,7 @@ func (api *ParityAPIImpl) ListStorageKeys(ctx context.Context, account libcommon
if err != nil {
return nil, err
}
- keys = append(keys, common.CopyBytes(k[20:]))
+ keys = append(keys, libcommon.CopyBytes(k[20:]))
}
return keys, nil
}
diff --git a/turbo/jsonrpc/parity_api_test.go b/turbo/jsonrpc/parity_api_test.go
index 857a617fa39..8a3f14780c1 100644
--- a/turbo/jsonrpc/parity_api_test.go
+++ b/turbo/jsonrpc/parity_api_test.go
@@ -54,7 +54,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_ExistingPrefix(t *testing.T) {
"4974416255391052161ba8184fe652f3bf8c915592c65f7de127af8e637dce5d",
}
addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5")
- offset := common.Hex2Bytes("29")
+ offset := libcommon.Hex2Bytes("29")
b := hexutility.Bytes(offset)
result, err := api.ListStorageKeys(context.Background(), addr, 5, &b, latestBlock)
if err != nil {
@@ -75,7 +75,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_NonExistingPrefix(t *testing.T
"4974416255391052161ba8184fe652f3bf8c915592c65f7de127af8e637dce5d",
}
addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5")
- offset := common.Hex2Bytes("30")
+ offset := libcommon.Hex2Bytes("30")
b := hexutility.Bytes(offset)
result, err := api.ListStorageKeys(context.Background(), addr, 2, &b, latestBlock)
if err != nil {
@@ -92,7 +92,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_EmptyResponse(t *testing.T) {
m, _, _ := rpcdaemontest.CreateTestSentry(t)
api := NewParityAPIImpl(newBaseApiForTest(m), m.DB)
addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5")
- offset := common.Hex2Bytes("ff")
+ offset := libcommon.Hex2Bytes("ff")
b := hexutility.Bytes(offset)
result, err := api.ListStorageKeys(context.Background(), addr, 2, &b, latestBlock)
if err != nil {
diff --git a/turbo/jsonrpc/storage_range.go b/turbo/jsonrpc/storage_range.go
index 12730522a1e..affd4381c15 100644
--- a/turbo/jsonrpc/storage_range.go
+++ b/turbo/jsonrpc/storage_range.go
@@ -7,7 +7,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/order"
- "github.com/ledgerwatch/erigon/common"
)
// StorageRangeResult is the result of a debug_storageRangeAt API call.
@@ -66,7 +65,7 @@ func storageRangeAtV3(ttx kv.TemporalTx, contractAddress libcommon.Address, star
continue // Skip deleted entries
}
key := libcommon.BytesToHash(k[20:])
- seckey, err := common.HashData(k[20:])
+ seckey, err := libcommon.HashData(k[20:])
if err != nil {
return StorageRangeResult{}, err
}
diff --git a/turbo/jsonrpc/trace_adhoc.go b/turbo/jsonrpc/trace_adhoc.go
index 95ca0b395e5..1bec461b03b 100644
--- a/turbo/jsonrpc/trace_adhoc.go
+++ b/turbo/jsonrpc/trace_adhoc.go
@@ -9,6 +9,8 @@ import (
"math/big"
"strings"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+
"github.com/holiman/uint256"
"github.com/ledgerwatch/log/v3"
@@ -17,8 +19,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
math2 "github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
@@ -328,7 +328,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon
vmTrace = ot.r.VmTrace
}
if create {
- vmTrace.Code = common.CopyBytes(input)
+ vmTrace.Code = libcommon.CopyBytes(input)
if ot.lastVmOp != nil {
ot.lastVmOp.Cost += int(gas)
}
@@ -377,7 +377,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon
action := CreateTraceAction{}
action.From = from
action.Gas.ToInt().SetUint64(gas)
- action.Init = common.CopyBytes(input)
+ action.Init = libcommon.CopyBytes(input)
action.Value.ToInt().Set(value.ToBig())
trace.Action = &action
} else if typ == vm.SELFDESTRUCT {
@@ -403,7 +403,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon
action.From = from
action.To = to
action.Gas.ToInt().SetUint64(gas)
- action.Input = common.CopyBytes(input)
+ action.Input = libcommon.CopyBytes(input)
action.Value.ToInt().Set(value.ToBig())
trace.Action = &action
}
@@ -440,7 +440,7 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e
return
}
if !deep {
- ot.r.Output = common.CopyBytes(output)
+ ot.r.Output = libcommon.CopyBytes(output)
}
ignoreError := false
topTrace := ot.traceStack[len(ot.traceStack)-1]
@@ -454,11 +454,11 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e
case CALL:
topTrace.Result.(*TraceResult).GasUsed = new(hexutil.Big)
topTrace.Result.(*TraceResult).GasUsed.ToInt().SetUint64(usedGas)
- topTrace.Result.(*TraceResult).Output = common.CopyBytes(output)
+ topTrace.Result.(*TraceResult).Output = libcommon.CopyBytes(output)
case CREATE:
topTrace.Result.(*CreateTraceResult).GasUsed = new(hexutil.Big)
topTrace.Result.(*CreateTraceResult).GasUsed.ToInt().SetUint64(usedGas)
- topTrace.Result.(*CreateTraceResult).Code = common.CopyBytes(output)
+ topTrace.Result.(*CreateTraceResult).Code = libcommon.CopyBytes(output)
}
} else {
topTrace.Result = nil
@@ -468,9 +468,9 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e
if len(output) > 0 {
switch topTrace.Type {
case CALL:
- topTrace.Result.(*TraceResult).Output = common.CopyBytes(output)
+ topTrace.Result.(*TraceResult).Output = libcommon.CopyBytes(output)
case CREATE:
- topTrace.Result.(*CreateTraceResult).Code = common.CopyBytes(output)
+ topTrace.Result.(*CreateTraceResult).Code = libcommon.CopyBytes(output)
}
}
switch topTrace.Type {
@@ -1087,7 +1087,7 @@ func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTyp
return nil, err
}
ot.CaptureTxEnd(&types.Receipt{GasUsed: execResult.UsedGas}, nil)
- traceResult.Output = common.CopyBytes(execResult.ReturnData)
+ traceResult.Output = libcommon.CopyBytes(execResult.ReturnData)
if traceTypeStateDiff {
sdMap := make(map[libcommon.Address]*StateDiffAccount)
traceResult.StateDiff = sdMap
@@ -1334,7 +1334,7 @@ func (api *TraceAPIImpl) doCallMany(ctx context.Context, dbtx kv.Tx, txns []type
if tracer != nil {
tracer.CaptureTxEnd(&types.Receipt{GasUsed: execResult.UsedGas}, nil)
}
- traceResult.Output = common.CopyBytes(execResult.ReturnData)
+ traceResult.Output = libcommon.CopyBytes(execResult.ReturnData)
if traceTypeStateDiff {
initialIbs := state.New(cloneReader)
sdMap := make(map[libcommon.Address]*StateDiffAccount)
diff --git a/turbo/jsonrpc/trace_adhoc_test.go b/turbo/jsonrpc/trace_adhoc_test.go
index ad237f4a826..7e38a86d05f 100644
--- a/turbo/jsonrpc/trace_adhoc_test.go
+++ b/turbo/jsonrpc/trace_adhoc_test.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"context"
"encoding/json"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"testing"
libcommon "github.com/ledgerwatch/erigon-lib/common"
@@ -11,7 +12,6 @@ import (
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/turbo/jsonrpc/trace_api.go b/turbo/jsonrpc/trace_api.go
index d5973ef227e..ac248e961ea 100644
--- a/turbo/jsonrpc/trace_api.go
+++ b/turbo/jsonrpc/trace_api.go
@@ -3,13 +3,13 @@ package jsonrpc
import (
"context"
"encoding/json"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
jsoniter "github.com/json-iterator/go"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/rpc"
)
diff --git a/turbo/jsonrpc/trace_filtering.go b/turbo/jsonrpc/trace_filtering.go
index 8e7bc64b249..b004404f1d5 100644
--- a/turbo/jsonrpc/trace_filtering.go
+++ b/turbo/jsonrpc/trace_filtering.go
@@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/RoaringBitmap/roaring/roaring64"
jsoniter "github.com/json-iterator/go"
@@ -17,7 +18,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/order"
"github.com/ledgerwatch/erigon-lib/kv/rawdbv3"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/ethash"
"github.com/ledgerwatch/erigon/core"
diff --git a/turbo/jsonrpc/trace_types.go b/turbo/jsonrpc/trace_types.go
index 500087d77a1..7c79fbeaada 100644
--- a/turbo/jsonrpc/trace_types.go
+++ b/turbo/jsonrpc/trace_types.go
@@ -2,11 +2,11 @@ package jsonrpc
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/turbo/jsonrpc/tracing.go b/turbo/jsonrpc/tracing.go
index 9bef60b52dc..1b2a6cf5893 100644
--- a/turbo/jsonrpc/tracing.go
+++ b/turbo/jsonrpc/tracing.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"time"
@@ -13,7 +14,6 @@ import (
"github.com/ledgerwatch/erigon/core/vm/evmtypes"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/rawdb"
diff --git a/turbo/jsonrpc/txpool_api.go b/turbo/jsonrpc/txpool_api.go
index c20fef68290..05663be4a88 100644
--- a/turbo/jsonrpc/txpool_api.go
+++ b/turbo/jsonrpc/txpool_api.go
@@ -3,13 +3,13 @@ package jsonrpc
import (
"context"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/gointerfaces"
proto_txpool "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool"
"github.com/ledgerwatch/erigon-lib/kv"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
)
diff --git a/turbo/jsonrpc/txpool_api_test.go b/turbo/jsonrpc/txpool_api_test.go
index a21d30a3231..205a7d72408 100644
--- a/turbo/jsonrpc/txpool_api_test.go
+++ b/turbo/jsonrpc/txpool_api_test.go
@@ -3,6 +3,7 @@ package jsonrpc
import (
"bytes"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"testing"
"github.com/holiman/uint256"
@@ -13,7 +14,6 @@ import (
"github.com/stretchr/testify/require"
"github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core"
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/params"
diff --git a/turbo/node/node.go b/turbo/node/node.go
index 704ff0e0764..c8cf85ed6a9 100644
--- a/turbo/node/node.go
+++ b/turbo/node/node.go
@@ -4,6 +4,7 @@ package node
import (
"context"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
"github.com/urfave/cli/v2"
@@ -15,7 +16,6 @@ import (
"github.com/ledgerwatch/erigon/node"
"github.com/ledgerwatch/erigon/node/nodecfg"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
erigoncli "github.com/ledgerwatch/erigon/turbo/cli"
)
diff --git a/turbo/services/interfaces.go b/turbo/services/interfaces.go
index 592006477d2..2b86e736f16 100644
--- a/turbo/services/interfaces.go
+++ b/turbo/services/interfaces.go
@@ -93,7 +93,7 @@ type BlockSnapshots interface {
// BlockRetire - freezing blocks: moving old data from DB to snapshot files
type BlockRetire interface {
PruneAncientBlocks(tx kv.RwTx, limit int, includeBor bool) error
- RetireBlocksInBackground(ctx context.Context, maxBlockNumInDB uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []DownloadRequest) error)
+ RetireBlocksInBackground(ctx context.Context, maxBlockNumInDB uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []DownloadRequest) error, onDelete func(l []string) error)
HasNewFrozenFiles() bool
BuildMissedIndicesIfNeed(ctx context.Context, logPrefix string, notifier DBEventNotifier, cc *chain.Config) error
}
diff --git a/turbo/shards/state_cache.go b/turbo/shards/state_cache.go
index 2a5ab4cff41..86924418830 100644
--- a/turbo/shards/state_cache.go
+++ b/turbo/shards/state_cache.go
@@ -4,15 +4,13 @@ import (
"bytes"
"container/heap"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/metrics"
"unsafe"
"github.com/c2h5oh/datasize"
"github.com/google/btree"
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/metrics"
-
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
@@ -424,8 +422,8 @@ func (sc *StateCache) get(key btree.Item) (CacheItem, bool) {
func (sc *StateCache) GetAccount(address []byte) (*accounts.Account, bool) {
AccRead.Inc()
var key AccountItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -453,8 +451,8 @@ func (sc *StateCache) HasAccountWithInPrefix(addrHashPrefix []byte) bool {
// GetDeletedAccount attempts to retrieve the last version of account before it was deleted
func (sc *StateCache) GetDeletedAccount(address []byte) *accounts.Account {
key := &AccountItem{}
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -475,8 +473,8 @@ func (sc *StateCache) GetDeletedAccount(address []byte) *accounts.Account {
func (sc *StateCache) GetStorage(address []byte, incarnation uint64, location []byte) ([]byte, bool) {
StRead.Inc()
var key StorageItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -500,8 +498,8 @@ func (sc *StateCache) GetStorage(address []byte, incarnation uint64, location []
// Second return value is true if such item is found
func (sc *StateCache) GetCode(address []byte, incarnation uint64) ([]byte, bool) {
var key CodeItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -554,8 +552,8 @@ func (sc *StateCache) readQueuesLen() (res int) {
// SetAccountRead adds given account to the cache, marking it as a read (not written)
func (sc *StateCache) SetAccountRead(address []byte, account *accounts.Account) {
var ai AccountItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -603,8 +601,8 @@ func (sc *StateCache) GetStorageByHashedAddress(addrHash libcommon.Hash, incarna
// SetAccountRead adds given account address to the cache, marking it as a absent
func (sc *StateCache) SetAccountAbsent(address []byte) {
var ai AccountItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -683,8 +681,8 @@ func (sc *StateCache) setWrite(item CacheItem, writeItem CacheWriteItem, del boo
// SetAccountWrite adds given account to the cache, marking it as written (cannot be evicted)
func (sc *StateCache) SetAccountWrite(address []byte, account *accounts.Account) {
var ai AccountItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -699,8 +697,8 @@ func (sc *StateCache) SetAccountWrite(address []byte, account *accounts.Account)
// SetAccountDelete is very similar to SetAccountWrite with the difference that there no set value
func (sc *StateCache) SetAccountDelete(address []byte) {
var ai AccountItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -713,8 +711,8 @@ func (sc *StateCache) SetAccountDelete(address []byte) {
func (sc *StateCache) SetStorageRead(address []byte, incarnation uint64, location []byte, value []byte) {
var si StorageItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -732,8 +730,8 @@ func (sc *StateCache) SetStorageRead(address []byte, incarnation uint64, locatio
// hack to set hashed addr - we don't have another one in trie stage
func (sc *StateCache) DeprecatedSetStorageRead(addrHash libcommon.Hash, incarnation uint64, locHash libcommon.Hash, val []byte) {
var i StorageItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
copy(i.addrHash[:], addrHash.Bytes())
i.incarnation = incarnation
i.locHash.SetBytes(locHash.Bytes())
@@ -785,8 +783,8 @@ func (sc *StateCache) DeprecatedSetStorageWrite(addrHash libcommon.Hash, incarna
func (sc *StateCache) SetStorageAbsent(address []byte, incarnation uint64, location []byte) {
var si StorageItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -802,8 +800,8 @@ func (sc *StateCache) SetStorageAbsent(address []byte, incarnation uint64, locat
func (sc *StateCache) SetStorageWrite(address []byte, incarnation uint64, location []byte, value []byte) {
var si StorageItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -824,8 +822,8 @@ func (sc *StateCache) SetStorageWrite(address []byte, incarnation uint64, locati
func (sc *StateCache) SetStorageDelete(address []byte, incarnation uint64, location []byte) {
var si StorageItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -845,8 +843,8 @@ func (sc *StateCache) SetStorageDelete(address []byte, incarnation uint64, locat
func (sc *StateCache) SetCodeRead(address []byte, incarnation uint64, code []byte) {
var ci CodeItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -859,8 +857,8 @@ func (sc *StateCache) SetCodeRead(address []byte, incarnation uint64, code []byt
func (sc *StateCache) SetCodeAbsent(address []byte, incarnation uint64) {
var ci CodeItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -872,8 +870,8 @@ func (sc *StateCache) SetCodeAbsent(address []byte, incarnation uint64) {
func (sc *StateCache) SetCodeWrite(address []byte, incarnation uint64, code []byte) {
// Check if this is going to be modification of the existing entry
var ci CodeItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
@@ -890,8 +888,8 @@ func (sc *StateCache) SetCodeWrite(address []byte, incarnation uint64, code []by
func (sc *StateCache) SetCodeDelete(address []byte, incarnation uint64) {
// Check if this is going to be modification of the existing entry
var ci CodeItem
- h := common.NewHasher()
- defer common.ReturnHasherToPool(h)
+ h := libcommon.NewHasher()
+ defer libcommon.ReturnHasherToPool(h)
//nolint:errcheck
h.Sha.Write(address)
//nolint:errcheck
diff --git a/turbo/shards/trie_cache.go b/turbo/shards/trie_cache.go
index ea995854aeb..fc359033f21 100644
--- a/turbo/shards/trie_cache.go
+++ b/turbo/shards/trie_cache.go
@@ -3,14 +3,13 @@ package shards
import (
"bytes"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/bits"
"unsafe"
"github.com/google/btree"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
@@ -216,7 +215,7 @@ func (sc *StateCache) SetAccountHashesRead(prefix []byte, hasState, hasTree, has
cpy := make([]libcommon.Hash, len(hashes))
copy(cpy, hashes)
ai := AccountHashItem{
- addrHashPrefix: common.CopyBytes(prefix),
+ addrHashPrefix: libcommon.CopyBytes(prefix),
hasState: hasState,
hasTree: hasTree,
hasHash: hasHash,
@@ -232,7 +231,7 @@ func (sc *StateCache) SetAccountHashWrite(prefix []byte, hasState, hasTree, hasH
assertSubset(hasTree, hasState)
assertSubset(hasHash, hasState)
ai := AccountHashItem{
- addrHashPrefix: common.CopyBytes(prefix),
+ addrHashPrefix: libcommon.CopyBytes(prefix),
hasState: hasState,
hasTree: hasTree,
hasHash: hasHash,
@@ -258,7 +257,7 @@ func (sc *StateCache) SetStorageHashRead(addrHash libcommon.Hash, incarnation ui
ai := StorageHashItem{
addrHash: addrHash,
incarnation: incarnation,
- locHashPrefix: common.CopyBytes(locHashPrefix),
+ locHashPrefix: libcommon.CopyBytes(locHashPrefix),
hasState: hasState,
hasTree: hasTree,
hasHash: hasHash,
@@ -273,7 +272,7 @@ func (sc *StateCache) SetStorageHashWrite(addrHash libcommon.Hash, incarnation u
ai := StorageHashItem{
addrHash: addrHash,
incarnation: incarnation,
- locHashPrefix: common.CopyBytes(locHashPrefix),
+ locHashPrefix: libcommon.CopyBytes(locHashPrefix),
hasState: hasState,
hasTree: hasTree,
hasHash: hasHash,
@@ -290,7 +289,7 @@ func (sc *StateCache) SetStorageHashDelete(addrHash libcommon.Hash, incarnation
ai := StorageHashItem{
addrHash: addrHash,
incarnation: incarnation,
- locHashPrefix: common.CopyBytes(locHashPrefix),
+ locHashPrefix: libcommon.CopyBytes(locHashPrefix),
hasState: hasState,
hasTree: hasTree,
hasHash: hasHash,
diff --git a/turbo/silkworm/load.go b/turbo/silkworm/load.go
deleted file mode 100644
index 4ae890436f4..00000000000
--- a/turbo/silkworm/load.go
+++ /dev/null
@@ -1,19 +0,0 @@
-//go:build !linux
-// +build !linux
-
-package silkworm
-
-import (
- "errors"
- "unsafe"
-)
-
-func OpenLibrary(dllPath string) (unsafe.Pointer, error) {
- // See https://github.com/golang/go/issues/28024
- return nil, errors.New("Silkworm is only supported on Linux")
-}
-
-func LoadFunction(dllHandle unsafe.Pointer, funcName string) (unsafe.Pointer, error) {
- // See https://github.com/golang/go/issues/28024
- return nil, errors.New("Silkworm is only supported on Linux")
-}
diff --git a/turbo/silkworm/load_linux.go b/turbo/silkworm/load_unix.go
similarity index 97%
rename from turbo/silkworm/load_linux.go
rename to turbo/silkworm/load_unix.go
index 5f3113103da..11a22c74822 100644
--- a/turbo/silkworm/load_linux.go
+++ b/turbo/silkworm/load_unix.go
@@ -1,3 +1,5 @@
+//go:build unix
+
package silkworm
/*
diff --git a/turbo/silkworm/load_windows.go b/turbo/silkworm/load_windows.go
new file mode 100644
index 00000000000..537411083c1
--- /dev/null
+++ b/turbo/silkworm/load_windows.go
@@ -0,0 +1,16 @@
+//go:build windows
+
+package silkworm
+
+import (
+ "errors"
+ "unsafe"
+)
+
+func OpenLibrary(dllPath string) (unsafe.Pointer, error) {
+ return nil, errors.New("not implemented")
+}
+
+func LoadFunction(dllHandle unsafe.Pointer, funcName string) (unsafe.Pointer, error) {
+ return nil, errors.New("not implemented")
+}
diff --git a/turbo/silkworm/silkworm.go b/turbo/silkworm/silkworm.go
index 51fec7888d3..d27e6a929c8 100644
--- a/turbo/silkworm/silkworm.go
+++ b/turbo/silkworm/silkworm.go
@@ -1,139 +1,28 @@
package silkworm
/*
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// START silkworm_api.h: C API exported by Silkworm to be used in Erigon.
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-#ifndef SILKWORM_API_H_
-#define SILKWORM_API_H_
-
-#include
-#include
-#include
#include
-
-#if defined _MSC_VER
-#define SILKWORM_EXPORT __declspec(dllexport)
-#else
-#define SILKWORM_EXPORT __attribute__((visibility("default")))
-#endif
-
-#if __cplusplus
-#define SILKWORM_NOEXCEPT noexcept
-#else
-#define SILKWORM_NOEXCEPT
-#endif
-
-#if __cplusplus
-extern "C" {
-#endif
-
-typedef struct MDBX_txn MDBX_txn;
-
-#define SILKWORM_OK 0
-#define SILKWORM_INTERNAL_ERROR 1
-#define SILKWORM_UNKNOWN_ERROR 2
-#define SILKWORM_INVALID_HANDLE 3
-#define SILKWORM_INVALID_PATH 4
-#define SILKWORM_INVALID_SNAPSHOT 5
-#define SILKWORM_INVALID_MDBX_TXN 6
-#define SILKWORM_INVALID_BLOCK_RANGE 7
-#define SILKWORM_BLOCK_NOT_FOUND 8
-#define SILKWORM_UNKNOWN_CHAIN_ID 9
-#define SILKWORM_MDBX_ERROR 10
-#define SILKWORM_INVALID_BLOCK 11
-#define SILKWORM_DECODING_ERROR 12
-#define SILKWORM_TOO_MANY_INSTANCES 13
-#define SILKWORM_INSTANCE_NOT_FOUND 14
-#define SILKWORM_TERMINATION_SIGNAL 15
-
-typedef struct SilkwormHandle SilkwormHandle;
-
-SILKWORM_EXPORT int silkworm_init(SilkwormHandle** handle) SILKWORM_NOEXCEPT;
-
-struct SilkwormMemoryMappedFile {
- const char* file_path;
- uint8_t* memory_address;
- uint64_t memory_length;
-};
-
-struct SilkwormHeadersSnapshot {
- struct SilkwormMemoryMappedFile segment;
- struct SilkwormMemoryMappedFile header_hash_index;
-};
-
-struct SilkwormBodiesSnapshot {
- struct SilkwormMemoryMappedFile segment;
- struct SilkwormMemoryMappedFile block_num_index;
-};
-
-struct SilkwormTransactionsSnapshot {
- struct SilkwormMemoryMappedFile segment;
- struct SilkwormMemoryMappedFile tx_hash_index;
- struct SilkwormMemoryMappedFile tx_hash_2_block_index;
-};
-
-struct SilkwormChainSnapshot {
- struct SilkwormHeadersSnapshot headers;
- struct SilkwormBodiesSnapshot bodies;
- struct SilkwormTransactionsSnapshot transactions;
-};
-
-SILKWORM_EXPORT int silkworm_add_snapshot(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) SILKWORM_NOEXCEPT;
-
-SILKWORM_EXPORT int silkworm_execute_blocks(
- SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, uint64_t max_block,
- uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces,
- uint64_t* last_executed_block, int* mdbx_error_code) SILKWORM_NOEXCEPT;
-
-SILKWORM_EXPORT int silkworm_fini(SilkwormHandle* handle) SILKWORM_NOEXCEPT;
-
-#if __cplusplus
-}
-#endif
-
-#endif // SILKWORM_API_H_
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// END silkworm_api.h: C API exported by Silkworm to be used in Erigon.
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-typedef int (*silkworm_init_func)(SilkwormHandle** handle);
-
-int call_silkworm_init_func(void* func_ptr, SilkwormHandle** handle) {
- return ((silkworm_init_func)func_ptr)(handle);
-}
-
-typedef int (*silkworm_add_snapshot_func)(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot);
-
-int call_silkworm_add_snapshot_func(void* func_ptr, SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) {
- return ((silkworm_add_snapshot_func)func_ptr)(handle, snapshot);
-}
-
-typedef int (*silkworm_execute_blocks_func)(SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block,
- uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces,
- uint64_t* last_executed_block, int* mdbx_error_code);
-
-int call_silkworm_execute_blocks_func(void* func_ptr, SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block,
- uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces,
- uint64_t* last_executed_block, int* mdbx_error_code) {
- return ((silkworm_execute_blocks_func)func_ptr)(handle, txn, chain_id, start_block, max_block, batch_size, write_change_sets,
- write_receipts, write_call_traces, last_executed_block, mdbx_error_code);
-}
-
-typedef int (*silkworm_fini_func)(SilkwormHandle* handle);
-
-int call_silkworm_fini_func(void* func_ptr, SilkwormHandle* handle) {
- return ((silkworm_fini_func)func_ptr)(handle);
+#include
+#include "silkworm_api_bridge.h"
+
+static bool go_string_copy(_GoString_ s, char *dest, size_t size) {
+ size_t len = _GoStringLen(s);
+ if (len >= size) return false;
+ const char *src = _GoStringPtr(s);
+ strncpy(dest, src, len);
+ dest[len] = '\0';
+ return true;
}
*/
import "C"
+
import (
"errors"
"fmt"
"math/big"
+ "runtime"
"unsafe"
"github.com/ledgerwatch/erigon-lib/kv"
@@ -141,37 +30,42 @@ import (
)
const (
- SILKWORM_OK = iota
- SILKWORM_INTERNAL_ERROR
- SILKWORM_UNKNOWN_ERROR
- SILKWORM_INVALID_HANDLE
- SILKWORM_INVALID_PATH
- SILKWORM_INVALID_SNAPSHOT
- SILKWORM_INVALID_MDBX_TXN
- SILKWORM_INVALID_BLOCK_RANGE
- SILKWORM_BLOCK_NOT_FOUND
- SILKWORM_UNKNOWN_CHAIN_ID
- SILKWORM_MDBX_ERROR
- SILKWORM_INVALID_BLOCK
- SILKWORM_DECODING_ERROR
- SILKWORM_TOO_MANY_INSTANCES
- SILKWORM_INSTANCE_NOT_FOUND
- SILKWORM_TERMINATION_SIGNAL
+ SILKWORM_OK = C.SILKWORM_OK
+ SILKWORM_INTERNAL_ERROR = C.SILKWORM_INTERNAL_ERROR
+ SILKWORM_UNKNOWN_ERROR = C.SILKWORM_UNKNOWN_ERROR
+ SILKWORM_INVALID_HANDLE = C.SILKWORM_INVALID_HANDLE
+ SILKWORM_INVALID_PATH = C.SILKWORM_INVALID_PATH
+ SILKWORM_INVALID_SNAPSHOT = C.SILKWORM_INVALID_SNAPSHOT
+ SILKWORM_INVALID_MDBX_TXN = C.SILKWORM_INVALID_MDBX_TXN
+ SILKWORM_INVALID_BLOCK_RANGE = C.SILKWORM_INVALID_BLOCK_RANGE
+ SILKWORM_BLOCK_NOT_FOUND = C.SILKWORM_BLOCK_NOT_FOUND
+ SILKWORM_UNKNOWN_CHAIN_ID = C.SILKWORM_UNKNOWN_CHAIN_ID
+ SILKWORM_MDBX_ERROR = C.SILKWORM_MDBX_ERROR
+ SILKWORM_INVALID_BLOCK = C.SILKWORM_INVALID_BLOCK
+ SILKWORM_DECODING_ERROR = C.SILKWORM_DECODING_ERROR
+ SILKWORM_TOO_MANY_INSTANCES = C.SILKWORM_TOO_MANY_INSTANCES
+ SILKWORM_INVALID_SETTINGS = C.SILKWORM_INVALID_SETTINGS
+ SILKWORM_TERMINATION_SIGNAL = C.SILKWORM_TERMINATION_SIGNAL
+ SILKWORM_SERVICE_ALREADY_STARTED = C.SILKWORM_SERVICE_ALREADY_STARTED
)
// ErrInterrupted is the error returned by Silkworm APIs when stopped by any termination signal.
var ErrInterrupted = errors.New("interrupted")
type Silkworm struct {
- dllHandle unsafe.Pointer
- instance *C.SilkwormHandle
- initFunc unsafe.Pointer
- finiFunc unsafe.Pointer
- addSnapshot unsafe.Pointer
- executeBlocks unsafe.Pointer
+ dllHandle unsafe.Pointer
+ instance *C.SilkwormHandle
+ initFunc unsafe.Pointer
+ finiFunc unsafe.Pointer
+ addSnapshot unsafe.Pointer
+ startRpcDaemon unsafe.Pointer
+ stopRpcDaemon unsafe.Pointer
+ sentryStart unsafe.Pointer
+ sentryStop unsafe.Pointer
+ executeBlocks unsafe.Pointer
}
-func New(dllPath string) (*Silkworm, error) {
+func New(dllPath string, dataDirPath string) (*Silkworm, error) {
dllHandle, err := OpenLibrary(dllPath)
if err != nil {
return nil, fmt.Errorf("failed to load silkworm library from path %s: %w", dllPath, err)
@@ -189,19 +83,47 @@ func New(dllPath string) (*Silkworm, error) {
if err != nil {
return nil, fmt.Errorf("failed to load silkworm function silkworm_add_snapshot: %w", err)
}
+ startRpcDaemon, err := LoadFunction(dllHandle, "silkworm_start_rpcdaemon")
+ if err != nil {
+ return nil, fmt.Errorf("failed to load silkworm function silkworm_start_rpcdaemon: %w", err)
+ }
+ stopRpcDaemon, err := LoadFunction(dllHandle, "silkworm_stop_rpcdaemon")
+ if err != nil {
+ return nil, fmt.Errorf("failed to load silkworm function silkworm_stop_rpcdaemon: %w", err)
+ }
+ sentryStart, err := LoadFunction(dllHandle, "silkworm_sentry_start")
+ if err != nil {
+ return nil, fmt.Errorf("failed to load silkworm function silkworm_sentry_start: %w", err)
+ }
+ sentryStop, err := LoadFunction(dllHandle, "silkworm_sentry_stop")
+ if err != nil {
+ return nil, fmt.Errorf("failed to load silkworm function silkworm_sentry_stop: %w", err)
+ }
executeBlocks, err := LoadFunction(dllHandle, "silkworm_execute_blocks")
if err != nil {
return nil, fmt.Errorf("failed to load silkworm function silkworm_execute_blocks: %w", err)
}
silkworm := &Silkworm{
- dllHandle: dllHandle,
- initFunc: initFunc,
- finiFunc: finiFunc,
- addSnapshot: addSnapshot,
- executeBlocks: executeBlocks,
+ dllHandle: dllHandle,
+ instance: nil,
+ initFunc: initFunc,
+ finiFunc: finiFunc,
+ addSnapshot: addSnapshot,
+ startRpcDaemon: startRpcDaemon,
+ stopRpcDaemon: stopRpcDaemon,
+ sentryStart: sentryStart,
+ sentryStop: sentryStop,
+ executeBlocks: executeBlocks,
+ }
+
+ settings := &C.struct_SilkwormSettings{}
+
+ if !C.go_string_copy(dataDirPath, &settings.data_dir_path[0], C.SILKWORM_PATH_SIZE) {
+ return nil, errors.New("silkworm.New failed to copy dataDirPath")
}
- status := C.call_silkworm_init_func(silkworm.initFunc, &silkworm.instance) //nolint:gocritic
+
+ status := C.call_silkworm_init_func(silkworm.initFunc, &silkworm.instance, settings) //nolint:gocritic
if status == SILKWORM_OK {
return silkworm, nil
}
@@ -285,7 +207,148 @@ func (s *Silkworm) AddSnapshot(snapshot *MappedChainSnapshot) error {
return fmt.Errorf("silkworm_add_snapshot error %d", status)
}
+func (s *Silkworm) StartRpcDaemon(db kv.RoDB) error {
+ cEnv := (*C.MDBX_env)(db.CHandle())
+ status := C.call_silkworm_start_rpcdaemon_func(s.startRpcDaemon, s.instance, cEnv)
+ // Handle successful execution
+ if status == SILKWORM_OK {
+ return nil
+ }
+ return fmt.Errorf("silkworm_start_rpcdaemon error %d", status)
+}
+
+func (s *Silkworm) StopRpcDaemon() error {
+ status := C.call_silkworm_stop_rpcdaemon_func(s.stopRpcDaemon, s.instance)
+ // Handle successful execution
+ if status == SILKWORM_OK {
+ return nil
+ }
+ return fmt.Errorf("silkworm_stop_rpcdaemon error %d", status)
+}
+
+type RpcDaemonService struct {
+ silkworm *Silkworm
+ db kv.RoDB
+}
+
+func (s *Silkworm) NewRpcDaemonService(db kv.RoDB) RpcDaemonService {
+ return RpcDaemonService{
+ silkworm: s,
+ db: db,
+ }
+}
+
+func (service RpcDaemonService) Start() error {
+ return service.silkworm.StartRpcDaemon(service.db)
+}
+
+func (service RpcDaemonService) Stop() error {
+ return service.silkworm.StopRpcDaemon()
+}
+
+type SentrySettings struct {
+ ClientId string
+ ApiPort int
+ Port int
+ Nat string
+ NetworkId uint64
+ NodeKey []byte
+ StaticPeers []string
+ Bootnodes []string
+ NoDiscover bool
+ MaxPeers int
+}
+
+func copyPeerURLs(list []string, cList *[C.SILKWORM_SENTRY_SETTINGS_PEERS_MAX][C.SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE]C.char) error {
+ listLen := len(list)
+ if listLen > C.SILKWORM_SENTRY_SETTINGS_PEERS_MAX {
+ return errors.New("copyPeerURLs: peers URL list has too many items")
+ }
+ // mark the list end with an empty string
+ if listLen < C.SILKWORM_SENTRY_SETTINGS_PEERS_MAX {
+ cList[listLen][0] = 0
+ }
+ for i, url := range list {
+ if !C.go_string_copy(url, &cList[i][0], C.SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE) {
+ return fmt.Errorf("copyPeerURLs: failed to copy peer URL %d", i)
+ }
+ }
+ return nil
+}
+
+func makeCSentrySettings(settings SentrySettings) (*C.struct_SilkwormSentrySettings, error) {
+ cSettings := &C.struct_SilkwormSentrySettings{
+ api_port: C.uint16_t(settings.ApiPort),
+ port: C.uint16_t(settings.Port),
+ network_id: C.uint64_t(settings.NetworkId),
+ no_discover: C.bool(settings.NoDiscover),
+ max_peers: C.size_t(settings.MaxPeers),
+ }
+ if !C.go_string_copy(settings.ClientId, &cSettings.client_id[0], C.SILKWORM_SENTRY_SETTINGS_CLIENT_ID_SIZE) {
+ return nil, errors.New("makeCSentrySettings failed to copy ClientId")
+ }
+ if !C.go_string_copy(settings.Nat, &cSettings.nat[0], C.SILKWORM_SENTRY_SETTINGS_NAT_SIZE) {
+ return nil, errors.New("makeCSentrySettings failed to copy Nat")
+ }
+ if len(settings.NodeKey) == C.SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE {
+ C.memcpy(unsafe.Pointer(&cSettings.node_key[0]), unsafe.Pointer(&settings.NodeKey[0]), C.SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE) //nolint:gocritic
+ } else {
+ return nil, errors.New("makeCSentrySettings failed to copy NodeKey")
+ }
+ if err := copyPeerURLs(settings.StaticPeers, &cSettings.static_peers); err != nil {
+ return nil, fmt.Errorf("copyPeerURLs failed to copy StaticPeers: %w", err)
+ }
+ if err := copyPeerURLs(settings.Bootnodes, &cSettings.bootnodes); err != nil {
+ return nil, fmt.Errorf("copyPeerURLs failed to copy Bootnodes: %w", err)
+ }
+ return cSettings, nil
+}
+
+func (s *Silkworm) SentryStart(settings SentrySettings) error {
+ cSettings, err := makeCSentrySettings(settings)
+ if err != nil {
+ return err
+ }
+ status := C.call_silkworm_sentry_start_func(s.sentryStart, s.instance, cSettings)
+ if status == SILKWORM_OK {
+ return nil
+ }
+ return fmt.Errorf("silkworm_sentry_start error %d", status)
+}
+
+func (s *Silkworm) SentryStop() error {
+ status := C.call_silkworm_stop_rpcdaemon_func(s.sentryStop, s.instance)
+ if status == SILKWORM_OK {
+ return nil
+ }
+ return fmt.Errorf("silkworm_sentry_stop error %d", status)
+}
+
+type SentryService struct {
+ silkworm *Silkworm
+ settings SentrySettings
+}
+
+func (s *Silkworm) NewSentryService(settings SentrySettings) SentryService {
+ return SentryService{
+ silkworm: s,
+ settings: settings,
+ }
+}
+
+func (service SentryService) Start() error {
+ return service.silkworm.SentryStart(service.settings)
+}
+
+func (service SentryService) Stop() error {
+ return service.silkworm.SentryStop()
+}
+
func (s *Silkworm) ExecuteBlocks(txn kv.Tx, chainID *big.Int, startBlock uint64, maxBlock uint64, batchSize uint64, writeChangeSets, writeReceipts, writeCallTraces bool) (lastExecutedBlock uint64, err error) {
+ if runtime.GOOS == "darwin" {
+ return 0, errors.New("silkworm execution is incompatible with Go runtime on macOS due to stack size mismatch (see https://github.com/golang/go/issues/28024)")
+ }
+
cTxn := (*C.MDBX_txn)(txn.CHandle())
cChainId := C.uint64_t(chainID.Uint64())
cStartBlock := C.uint64_t(startBlock)
@@ -303,7 +366,7 @@ func (s *Silkworm) ExecuteBlocks(txn kv.Tx, chainID *big.Int, startBlock uint64,
if status == SILKWORM_OK {
return lastExecutedBlock, nil
}
- // Handle special erros
+ // Handle special errors
if status == SILKWORM_INVALID_BLOCK {
return lastExecutedBlock, consensus.ErrInvalidBlock
}
diff --git a/turbo/silkworm/silkworm_api.h b/turbo/silkworm/silkworm_api.h
new file mode 100644
index 00000000000..91ea519551b
--- /dev/null
+++ b/turbo/silkworm/silkworm_api.h
@@ -0,0 +1,206 @@
+/*
+ Copyright 2023 The Silkworm Authors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef SILKWORM_API_H_
+#define SILKWORM_API_H_
+
+// C API exported by Silkworm to be used in Erigon.
+
+#include // NOLINT(*-deprecated-headers)
+#include // NOLINT(*-deprecated-headers)
+#include // NOLINT(*-deprecated-headers)
+
+#if defined _MSC_VER
+#define SILKWORM_EXPORT __declspec(dllexport)
+#else
+#define SILKWORM_EXPORT __attribute__((visibility("default")))
+#endif
+
+#if __cplusplus
+#define SILKWORM_NOEXCEPT noexcept
+#else
+#define SILKWORM_NOEXCEPT
+#endif
+
+#if __cplusplus
+extern "C" {
+#endif
+
+// Silkworm library error codes (SILKWORM_OK indicates no error, i.e. success)
+
+#define SILKWORM_OK 0
+#define SILKWORM_INTERNAL_ERROR 1
+#define SILKWORM_UNKNOWN_ERROR 2
+#define SILKWORM_INVALID_HANDLE 3
+#define SILKWORM_INVALID_PATH 4
+#define SILKWORM_INVALID_SNAPSHOT 5
+#define SILKWORM_INVALID_MDBX_TXN 6
+#define SILKWORM_INVALID_BLOCK_RANGE 7
+#define SILKWORM_BLOCK_NOT_FOUND 8
+#define SILKWORM_UNKNOWN_CHAIN_ID 9
+#define SILKWORM_MDBX_ERROR 10
+#define SILKWORM_INVALID_BLOCK 11
+#define SILKWORM_DECODING_ERROR 12
+#define SILKWORM_TOO_MANY_INSTANCES 13
+#define SILKWORM_INVALID_SETTINGS 14
+#define SILKWORM_TERMINATION_SIGNAL 15
+#define SILKWORM_SERVICE_ALREADY_STARTED 16
+
+typedef struct MDBX_env MDBX_env;
+typedef struct MDBX_txn MDBX_txn;
+typedef struct SilkwormHandle SilkwormHandle;
+
+struct SilkwormMemoryMappedFile {
+ const char* file_path;
+ uint8_t* memory_address;
+ uint64_t memory_length;
+};
+
+struct SilkwormHeadersSnapshot {
+ struct SilkwormMemoryMappedFile segment;
+ struct SilkwormMemoryMappedFile header_hash_index;
+};
+
+struct SilkwormBodiesSnapshot {
+ struct SilkwormMemoryMappedFile segment;
+ struct SilkwormMemoryMappedFile block_num_index;
+};
+
+struct SilkwormTransactionsSnapshot {
+ struct SilkwormMemoryMappedFile segment;
+ struct SilkwormMemoryMappedFile tx_hash_index;
+ struct SilkwormMemoryMappedFile tx_hash_2_block_index;
+};
+
+struct SilkwormChainSnapshot {
+ struct SilkwormHeadersSnapshot headers;
+ struct SilkwormBodiesSnapshot bodies;
+ struct SilkwormTransactionsSnapshot transactions;
+};
+
+#define SILKWORM_PATH_SIZE 260
+
+struct SilkwormSettings {
+ //! Data directory path in UTF-8.
+ char data_dir_path[SILKWORM_PATH_SIZE];
+};
+
+/**
+ * \brief Initialize the Silkworm C API library.
+ * \param[in,out] handle Silkworm instance handle returned on successful initialization.
+ * \param[in] settings General Silkworm settings.
+ * \return SILKWORM_OK (=0) on success, a non-zero error value on failure.
+ */
+SILKWORM_EXPORT int silkworm_init(
+ SilkwormHandle** handle,
+ const struct SilkwormSettings* settings) SILKWORM_NOEXCEPT;
+
+/**
+ * \brief Build a set of indexes for the given snapshots.
+ * \param[in] handle A valid Silkworm instance handle, got with silkworm_init.
+ * \param[in] snapshots An array of snapshots to index.
+ * \param[in] indexPaths An array of paths to write indexes to.
+ * Note that the name of the index is a part of the path and it is used to determine the index type.
+ * \param[in] len The number of snapshots and paths.
+ * \return SILKWORM_OK (=0) on success, a non-zero error value on failure on some or all indexes.
+ */
+SILKWORM_EXPORT int silkworm_build_recsplit_indexes(SilkwormHandle* handle, struct SilkwormMemoryMappedFile* snapshots[], int len) SILKWORM_NOEXCEPT;
+
+/**
+ * \brief Notify Silkworm about a new snapshot to use.
+ * \param[in] handle A valid Silkworm instance handle, got with silkworm_init.
+ * \param[in] snapshot A snapshot to use.
+ * \return SILKWORM_OK (=0) on success, a non-zero error value on failure.
+ */
+SILKWORM_EXPORT int silkworm_add_snapshot(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) SILKWORM_NOEXCEPT;
+
+/**
+ * \brief Start Silkworm RPC daemon.
+ * \param[in] handle A valid Silkworm instance handle, got with silkworm_init.Must not be zero.
+ * \param[in] env An valid MDBX environment. Must not be zero.
+ * \return SILKWORM_OK (=0) on success, a non-zero error value on failure.
+ */
+SILKWORM_EXPORT int silkworm_start_rpcdaemon(SilkwormHandle* handle, MDBX_env* env) SILKWORM_NOEXCEPT;
+
+/**
+ * \brief Stop Silkworm RPC daemon and wait for its termination.
+ * \param[in] handle A valid Silkworm instance handle, got with silkworm_init. Must not be zero.
+ * \param[in] snapshot A snapshot to use.
+ * \return SILKWORM_OK (=0) on success, a non-zero error value on failure.
+ */
+SILKWORM_EXPORT int silkworm_stop_rpcdaemon(SilkwormHandle* handle) SILKWORM_NOEXCEPT;
+
+#define SILKWORM_SENTRY_SETTINGS_CLIENT_ID_SIZE 128
+#define SILKWORM_SENTRY_SETTINGS_NAT_SIZE 50
+#define SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE 32
+#define SILKWORM_SENTRY_SETTINGS_PEERS_MAX 128
+#define SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE 200
+
+struct SilkwormSentrySettings {
+ char client_id[SILKWORM_SENTRY_SETTINGS_CLIENT_ID_SIZE];
+ uint16_t api_port;
+ uint16_t port;
+ char nat[SILKWORM_SENTRY_SETTINGS_NAT_SIZE];
+ uint64_t network_id;
+ uint8_t node_key[SILKWORM_SENTRY_SETTINGS_NODE_KEY_SIZE];
+ char static_peers[SILKWORM_SENTRY_SETTINGS_PEERS_MAX][SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE];
+ char bootnodes[SILKWORM_SENTRY_SETTINGS_PEERS_MAX][SILKWORM_SENTRY_SETTINGS_PEER_URL_SIZE];
+ bool no_discover;
+ size_t max_peers;
+};
+
+SILKWORM_EXPORT int silkworm_sentry_start(SilkwormHandle* handle, const struct SilkwormSentrySettings* settings) SILKWORM_NOEXCEPT;
+SILKWORM_EXPORT int silkworm_sentry_stop(SilkwormHandle* handle) SILKWORM_NOEXCEPT;
+
+/**
+ * \brief Execute a batch of blocks and write resulting changes into the database.
+ * \param[in] handle A valid Silkworm instance handle, got with silkworm_init.
+ * \param[in] txn A valid read-write MDBX transaction. Must not be zero.
+ * This function does not commit nor abort the transaction.
+ * \param[in] chain_id EIP-155 chain ID. SILKWORM_UNKNOWN_CHAIN_ID is returned in case of an unknown or unsupported chain.
+ * \param[in] start_block The block height to start the execution from.
+ * \param[in] max_block Do not execute after this block.
+ * max_block may be executed, or the execution may stop earlier if the batch is full.
+ * \param[in] batch_size The size of DB changes to accumulate before returning from this method.
+ * Pass 0 if you want to execute just 1 block.
+ * \param[in] write_change_sets Whether to write state changes into the DB.
+ * \param[in] write_receipts Whether to write CBOR-encoded receipts into the DB.
+ * \param[in] write_call_traces Whether to write call traces into the DB.
+ * \param[out] last_executed_block The height of the last successfully executed block.
+ * Not written to if no blocks were executed, otherwise *last_executed_block ≤ max_block.
+ * \param[out] mdbx_error_code If an MDBX error occurs (this function returns kSilkwormMdbxError)
+ * and mdbx_error_code isn't NULL, it's populated with the relevant MDBX error code.
+ * \return SILKWORM_OK (=0) on success, a non-zero error value on failure.
+ * SILKWORM_BLOCK_NOT_FOUND is probably OK: it simply means that the execution reached the end of the chain
+ * (blocks up to and incl. last_executed_block were still executed).
+ */
+SILKWORM_EXPORT int silkworm_execute_blocks(
+ SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block, uint64_t max_block,
+ uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces,
+ uint64_t* last_executed_block, int* mdbx_error_code) SILKWORM_NOEXCEPT;
+
+/**
+ * \brief Finalize the Silkworm C API library.
+ * \param[in] handle A valid Silkworm instance handle got with silkworm_init.
+ * \return SILKWORM_OK (=0) on success, a non-zero error value on failure.
+ */
+SILKWORM_EXPORT int silkworm_fini(SilkwormHandle* handle) SILKWORM_NOEXCEPT;
+
+#if __cplusplus
+}
+#endif
+
+#endif // SILKWORM_API_H_
diff --git a/turbo/silkworm/silkworm_api_bridge.h b/turbo/silkworm/silkworm_api_bridge.h
new file mode 100644
index 00000000000..2969ca62e6f
--- /dev/null
+++ b/turbo/silkworm/silkworm_api_bridge.h
@@ -0,0 +1,75 @@
+/*
+ Copyright 2023 The Silkworm Authors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#ifndef SILKWORM_API_FUNC_H_
+#define SILKWORM_API_FUNC_H_
+
+#include "silkworm_api.h"
+
+typedef int (*silkworm_init_func)(SilkwormHandle** handle, const struct SilkwormSettings* settings);
+
+int call_silkworm_init_func(void* func_ptr, SilkwormHandle** handle, const struct SilkwormSettings* settings) {
+ return ((silkworm_init_func)func_ptr)(handle, settings);
+}
+
+typedef int (*silkworm_add_snapshot_func)(SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot);
+
+int call_silkworm_add_snapshot_func(void* func_ptr, SilkwormHandle* handle, struct SilkwormChainSnapshot* snapshot) {
+ return ((silkworm_add_snapshot_func)func_ptr)(handle, snapshot);
+}
+
+typedef int (*silkworm_start_rpcdaemon_func)(SilkwormHandle* handle, MDBX_env* env);
+
+int call_silkworm_start_rpcdaemon_func(void* func_ptr, SilkwormHandle* handle, MDBX_env* env) {
+ return ((silkworm_start_rpcdaemon_func)func_ptr)(handle, env);
+}
+
+typedef int (*silkworm_stop_rpcdaemon_func)(SilkwormHandle* handle);
+
+int call_silkworm_stop_rpcdaemon_func(void* func_ptr, SilkwormHandle* handle) {
+ return ((silkworm_stop_rpcdaemon_func)func_ptr)(handle);
+}
+
+typedef int (*silkworm_sentry_start_func)(SilkwormHandle* handle, const struct SilkwormSentrySettings* settings);
+
+int call_silkworm_sentry_start_func(void* func_ptr, SilkwormHandle* handle, const struct SilkwormSentrySettings* settings) {
+ return ((silkworm_sentry_start_func)func_ptr)(handle, settings);
+}
+
+typedef int (*silkworm_sentry_stop_func)(SilkwormHandle* handle);
+
+int call_silkworm_sentry_stop_func(void* func_ptr, SilkwormHandle* handle) {
+ return ((silkworm_sentry_stop_func)func_ptr)(handle);
+}
+
+typedef int (*silkworm_execute_blocks_func)(SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block,
+ uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces,
+ uint64_t* last_executed_block, int* mdbx_error_code);
+
+int call_silkworm_execute_blocks_func(void* func_ptr, SilkwormHandle* handle, MDBX_txn* txn, uint64_t chain_id, uint64_t start_block,
+ uint64_t max_block, uint64_t batch_size, bool write_change_sets, bool write_receipts, bool write_call_traces,
+ uint64_t* last_executed_block, int* mdbx_error_code) {
+ return ((silkworm_execute_blocks_func)func_ptr)(handle, txn, chain_id, start_block, max_block, batch_size, write_change_sets,
+ write_receipts, write_call_traces, last_executed_block, mdbx_error_code);
+}
+
+typedef int (*silkworm_fini_func)(SilkwormHandle* handle);
+
+int call_silkworm_fini_func(void* func_ptr, SilkwormHandle* handle) {
+ return ((silkworm_fini_func)func_ptr)(handle);
+}
+
+#endif // SILKWORM_API_FUNC_H_
diff --git a/turbo/snapshotsync/freezeblocks/beacon_block_reader.go b/turbo/snapshotsync/freezeblocks/beacon_block_reader.go
new file mode 100644
index 00000000000..4f815791b1e
--- /dev/null
+++ b/turbo/snapshotsync/freezeblocks/beacon_block_reader.go
@@ -0,0 +1,92 @@
+package freezeblocks
+
+import (
+ "bytes"
+ "sync"
+
+ "github.com/ledgerwatch/erigon/cl/clparams"
+ "github.com/ledgerwatch/erigon/cl/cltypes"
+ "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format"
+ "github.com/pierrec/lz4"
+)
+
+var buffersPool = sync.Pool{
+ New: func() interface{} { return &bytes.Buffer{} },
+}
+
+var lz4ReaderPool = sync.Pool{
+ New: func() interface{} {
+ return lz4.NewReader(nil)
+ },
+}
+
+type BeaconSnapshotReader interface {
+ // ReadBlock reads the block at the given slot.
+ // If the block is not present, it returns nil.
+ ReadBlock(slot uint64) (*cltypes.SignedBeaconBlock, error)
+ RawBlockSSZ(slot uint64) ([]byte, error)
+
+ FrozenSlots() uint64
+}
+
+type beaconSnapshotReader struct {
+ sn *CaplinSnapshots
+
+ eth1Getter snapshot_format.ExecutionBlockReaderByNumber
+ cfg *clparams.BeaconChainConfig
+}
+
+func NewBeaconSnapshotReader(snapshots *CaplinSnapshots, eth1Getter snapshot_format.ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) BeaconSnapshotReader {
+ return &beaconSnapshotReader{sn: snapshots, eth1Getter: eth1Getter, cfg: cfg}
+}
+
+func (r *beaconSnapshotReader) FrozenSlots() uint64 {
+ return r.sn.BlocksAvailable()
+}
+
+func (r *beaconSnapshotReader) ReadBlock(slot uint64) (*cltypes.SignedBeaconBlock, error) {
+ buf, err := r.RawBlockSSZ(slot)
+ if err != nil {
+ return nil, err
+ }
+ if buf == nil {
+ return nil, nil
+ }
+
+ // Use pooled buffers and readers to avoid allocations.
+ buffer := buffersPool.Get().(*bytes.Buffer)
+ defer buffersPool.Put(buffer)
+ buffer.Reset()
+ buffer.Write(buf)
+
+ lzReader := lz4ReaderPool.Get().(*lz4.Reader)
+ defer lz4ReaderPool.Put(lzReader)
+ lzReader.Reset(buffer)
+
+ return snapshot_format.ReadBlockFromSnapshot(lzReader, r.eth1Getter, r.cfg)
+}
+
+func (r *beaconSnapshotReader) RawBlockSSZ(slot uint64) ([]byte, error) {
+ view := r.sn.View()
+ defer view.Close()
+
+ var buf []byte
+
+ seg, ok := view.BeaconBlocksSegment(slot)
+ if !ok {
+ return nil, nil
+ }
+
+ if seg.idxSlot == nil {
+ return nil, nil
+ }
+ blockOffset := seg.idxSlot.OrdinalLookup(slot - seg.idxSlot.BaseDataID())
+
+ gg := seg.seg.MakeGetter()
+ gg.Reset(blockOffset)
+ if !gg.HasNext() {
+ return nil, nil
+ }
+ buf, _ = gg.Next(buf)
+ return buf, nil
+}
diff --git a/turbo/snapshotsync/freezeblocks/block_reader.go b/turbo/snapshotsync/freezeblocks/block_reader.go
index a837d6bf0b7..430e9f5ab95 100644
--- a/turbo/snapshotsync/freezeblocks/block_reader.go
+++ b/turbo/snapshotsync/freezeblocks/block_reader.go
@@ -1077,3 +1077,33 @@ func (r *BlockReader) LastFrozenEventID() uint64 {
}
return lastEventID
}
+
+// ---- Data Integrity part ----
+
+func (r *BlockReader) ensureHeaderNumber(n uint64, seg *HeaderSegment) error {
+ h, _, err := r.headerFromSnapshot(n, seg, nil)
+ if err != nil {
+ return err
+ }
+ if h == nil {
+ return fmt.Errorf("ensureHeaderNumber: not found header: %d", n)
+ }
+ if h.Number.Uint64() != n {
+ return fmt.Errorf("ensureHeaderNumber: requested header: %d, got: %d", n, h.Number.Uint64())
+ }
+ return nil
+}
+
+func (r *BlockReader) Integrity(ctx context.Context) error {
+ view := r.sn.View()
+ defer view.Close()
+ for _, seg := range view.Headers() {
+ if err := r.ensureHeaderNumber(seg.ranges.from, seg); err != nil {
+ return err
+ }
+ if err := r.ensureHeaderNumber(seg.ranges.to-1, seg); err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots.go b/turbo/snapshotsync/freezeblocks/block_snapshots.go
index 96e222d54ee..dc21c29f275 100644
--- a/turbo/snapshotsync/freezeblocks/block_snapshots.go
+++ b/turbo/snapshotsync/freezeblocks/block_snapshots.go
@@ -19,6 +19,7 @@ import (
"github.com/holiman/uint256"
"github.com/ledgerwatch/erigon-lib/chain"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
common2 "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/background"
"github.com/ledgerwatch/erigon-lib/common/cmp"
@@ -45,7 +46,6 @@ import (
"github.com/ledgerwatch/erigon/rlp"
"github.com/ledgerwatch/erigon/turbo/services"
"github.com/ledgerwatch/erigon/turbo/silkworm"
- "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg"
"github.com/ledgerwatch/log/v3"
"golang.org/x/exp/slices"
"golang.org/x/sync/errgroup"
@@ -121,11 +121,7 @@ func (sn *HeaderSegment) reopenIdx(dir string) (err error) {
if err != nil {
return fmt.Errorf("%w, fileName: %s", err, fileName)
}
- if sn.idxHeaderHash.ModTime().Before(sn.seg.ModTime()) {
- // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent
- sn.idxHeaderHash.Close()
- sn.idxHeaderHash = nil
- }
+
return nil
}
@@ -182,11 +178,6 @@ func (sn *BodySegment) reopenIdx(dir string) (err error) {
if err != nil {
return fmt.Errorf("%w, fileName: %s", err, fileName)
}
- if sn.idxBodyNumber.ModTime().Before(sn.seg.ModTime()) {
- // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent
- sn.idxBodyNumber.Close()
- sn.idxBodyNumber = nil
- }
return nil
}
@@ -229,24 +220,27 @@ func (sn *TxnSegment) reopenIdx(dir string) (err error) {
if err != nil {
return fmt.Errorf("%w, fileName: %s", err, fileName)
}
- if sn.IdxTxnHash.ModTime().Before(sn.Seg.ModTime()) {
- log.Trace("[snapshots] skip index because it modify time is ahead before .seg file", "name", sn.IdxTxnHash.FileName())
- // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent
- sn.IdxTxnHash.Close()
- sn.IdxTxnHash = nil
- }
+
+ /*
+ // Historically we had several times when:
+ // - erigon downloaded new version of .seg file
+ // - or didn't finish download and start indexing
+ // this was a "quick-fix protection" against this cases
+ // but now we have other protections for this cases
+ // let's try to remove this one - because it's not compatible with "copy datadir" and "restore datadir from backup" scenarios
+ if sn.IdxTxnHash.ModTime().Before(sn.Seg.ModTime()) {
+ log.Trace("[snapshots] skip index because it modify time is ahead before .seg file", "name", sn.IdxTxnHash.FileName())
+ //Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent
+ sn.IdxTxnHash.Close()
+ sn.IdxTxnHash = nil
+ }
+ */
fileName = snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.Transactions2Block.String())
sn.IdxTxnHash2BlockNum, err = recsplit.OpenIndex(path.Join(dir, fileName))
if err != nil {
return fmt.Errorf("%w, fileName: %s", err, fileName)
}
- if sn.IdxTxnHash2BlockNum.ModTime().Before(sn.Seg.ModTime()) {
- log.Trace("[snapshots] skip index because it modify time is ahead before .seg file", "name", sn.IdxTxnHash2BlockNum.FileName())
- // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent
- sn.IdxTxnHash2BlockNum.Close()
- sn.IdxTxnHash2BlockNum = nil
- }
return nil
}
@@ -959,7 +953,7 @@ func BuildMissedIndices(logPrefix string, ctx context.Context, dirs datadir.Dirs
}
}()
- for _, t := range snaptype.AllSnapshotTypes {
+ for _, t := range snaptype.BlockSnapshotTypes {
for index := range segments {
segment := segments[index]
if segment.T != t {
@@ -1065,7 +1059,7 @@ MainLoop:
if f.From == f.To {
continue
}
- for _, t := range snaptype.AllSnapshotTypes {
+ for _, t := range snaptype.BlockSnapshotTypes {
p := filepath.Join(dir, snaptype.SegmentFileName(f.From, f.To, t))
if !dir2.FileExist(p) {
continue MainLoop
@@ -1118,6 +1112,28 @@ func noOverlaps(in []snaptype.FileInfo) (res []snaptype.FileInfo) {
return res
}
+func SegmentsCaplin(dir string) (res []snaptype.FileInfo, missingSnapshots []Range, err error) {
+ list, err := snaptype.Segments(dir)
+ if err != nil {
+ return nil, missingSnapshots, err
+ }
+
+ {
+ var l []snaptype.FileInfo
+ var m []Range
+ for _, f := range list {
+ if f.T != snaptype.BeaconBlocks {
+ continue
+ }
+ l = append(l, f)
+ }
+ l, m = noGaps(noOverlaps(l))
+ res = append(res, l...)
+ missingSnapshots = append(missingSnapshots, m...)
+ }
+ return res, missingSnapshots, nil
+}
+
func Segments(dir string) (res []snaptype.FileInfo, missingSnapshots []Range, err error) {
list, err := snaptype.Segments(dir)
if err != nil {
@@ -1217,8 +1233,8 @@ func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) {
blockFrom = (from / 1_000) * 1_000
roundedTo1K := (to / 1_000) * 1_000
var maxJump uint64 = 1_000
- if blockFrom%500_000 == 0 {
- maxJump = 500_000
+ if blockFrom%snaptype.Erigon2MergeLimit == 0 {
+ maxJump = snaptype.Erigon2MergeLimit
} else if blockFrom%100_000 == 0 {
maxJump = 100_000
} else if blockFrom%10_000 == 0 {
@@ -1227,8 +1243,8 @@ func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) {
//roundedTo1K := (to / 1_000) * 1_000
jump := cmp.Min(maxJump, roundedTo1K-blockFrom)
switch { // only next segment sizes are allowed
- case jump >= 500_000:
- blockTo = blockFrom + 500_000
+ case jump >= snaptype.Erigon2MergeLimit:
+ blockTo = blockFrom + snaptype.Erigon2MergeLimit
case jump >= 100_000:
blockTo = blockFrom + 100_000
case jump >= 10_000:
@@ -1250,7 +1266,7 @@ func CanDeleteTo(curBlockNum uint64, blocksInSnapshots uint64) (blockTo uint64)
return cmp.Min(hardLimit, blocksInSnapshots+1)
}
-func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error) error {
+func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error, onDelete func(l []string) error) error {
chainConfig := fromdb.ChainConfig(br.db)
notifier, logger, blockReader, tmpDir, db, workers := br.notifier, br.logger, br.blockReader, br.tmpDir, br.db, br.workers
logger.Log(lvl, "[snapshots] Retire Blocks", "range", fmt.Sprintf("%dk-%dk", blockFrom/1000, blockTo/1000))
@@ -1258,7 +1274,7 @@ func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint
firstTxNum := blockReader.(*BlockReader).FirstTxNumNotInSnapshots()
// in future we will do it in background
- if err := DumpBlocks(ctx, blockFrom, blockTo, snaptype.Erigon2SegmentSize, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil {
+ if err := DumpBlocks(ctx, blockFrom, blockTo, snaptype.Erigon2MergeLimit, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil {
return fmt.Errorf("DumpBlocks: %w", err)
}
if err := snapshots.ReopenFolder(); err != nil {
@@ -1268,34 +1284,31 @@ func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint
if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size
notifier.OnNewSnapshot()
}
- merger := NewMerger(tmpDir, workers, lvl, db, chainConfig, notifier, logger)
- rangesToMerge := merger.FindMergeRanges(snapshots.Ranges())
+ merger := NewMerger(tmpDir, workers, lvl, db, chainConfig, logger)
+ rangesToMerge := merger.FindMergeRanges(snapshots.Ranges(), snapshots.BlocksAvailable())
if len(rangesToMerge) == 0 {
return nil
}
- err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */)
+ onMerge := func(r Range) error {
+ if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size
+ notifier.OnNewSnapshot()
+ }
+
+ if seedNewSnapshots != nil {
+ downloadRequest := []services.DownloadRequest{
+ services.NewDownloadRequest(&services.Range{From: r.from, To: r.to}, "", "", false /* Bor */),
+ }
+ if err := seedNewSnapshots(downloadRequest); err != nil {
+ return err
+ }
+ }
+ return nil
+ }
+ err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete)
if err != nil {
return err
}
- if err := snapshots.ReopenFolder(); err != nil {
- return fmt.Errorf("reopen: %w", err)
- }
- snapshots.LogStat()
- if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size
- notifier.OnNewSnapshot()
- }
- downloadRequest := make([]services.DownloadRequest, 0, len(rangesToMerge))
- for i := range rangesToMerge {
- r := &services.Range{From: rangesToMerge[i].from, To: rangesToMerge[i].to}
- downloadRequest = append(downloadRequest, services.NewDownloadRequest(r, "", "", false /* Bor */))
- }
-
- if seedNewSnapshots != nil {
- if err := seedNewSnapshots(downloadRequest); err != nil {
- return err
- }
- }
return nil
}
@@ -1320,7 +1333,7 @@ func (br *BlockRetire) PruneAncientBlocks(tx kv.RwTx, limit int, includeBor bool
return nil
}
-func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProgress uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error) {
+func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProgress uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error, onDeleteSnapshots func(l []string) error) {
ok := br.working.CompareAndSwap(false, true)
if !ok {
// go-routine is still working
@@ -1331,7 +1344,7 @@ func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProg
blockFrom, blockTo, ok := CanRetire(forwardProgress, br.blockReader.FrozenBlocks())
if ok {
- if err := br.RetireBlocks(ctx, blockFrom, blockTo, lvl, seedNewSnapshots); err != nil {
+ if err := br.RetireBlocks(ctx, blockFrom, blockTo, lvl, seedNewSnapshots, onDeleteSnapshots); err != nil {
br.logger.Warn("[snapshots] retire blocks", "err", err, "fromBlock", blockFrom, "toBlock", blockTo)
}
}
@@ -1525,10 +1538,6 @@ func dumpBlocksRange(ctx context.Context, blockFrom, blockTo uint64, tmpDir, sna
}
func hasIdxFile(sn snaptype.FileInfo, logger log.Logger) bool {
- stat, err := os.Stat(sn.Path)
- if err != nil {
- return false
- }
dir, _ := filepath.Split(sn.Path)
fName := snaptype.IdxFileName(sn.From, sn.To, sn.T.String())
var result = true
@@ -1538,22 +1547,12 @@ func hasIdxFile(sn snaptype.FileInfo, logger log.Logger) bool {
if err != nil {
return false
}
- // If index was created before the segment file, it needs to be ignored (and rebuilt)
- if idx.ModTime().Before(stat.ModTime()) {
- logger.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime())
- result = false
- }
idx.Close()
case snaptype.Transactions:
idx, err := recsplit.OpenIndex(path.Join(dir, fName))
if err != nil {
return false
}
- // If index was created before the segment file, it needs to be ignored (and rebuilt)
- if idx.ModTime().Before(stat.ModTime()) {
- log.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime())
- result = false
- }
idx.Close()
fName = snaptype.IdxFileName(sn.From, sn.To, snaptype.Transactions2Block.String())
@@ -1561,11 +1560,6 @@ func hasIdxFile(sn snaptype.FileInfo, logger log.Logger) bool {
if err != nil {
return false
}
- // If index was created before the segment file, it needs to be ignored (and rebuilt)
- if idx.ModTime().Before(stat.ModTime()) {
- logger.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime())
- result = false
- }
idx.Close()
}
return result
@@ -2173,29 +2167,43 @@ type Merger struct {
tmpDir string
chainConfig *chain.Config
chainDB kv.RoDB
- notifier services.DBEventNotifier
logger log.Logger
}
-func NewMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.RoDB, chainConfig *chain.Config, notifier services.DBEventNotifier, logger log.Logger) *Merger {
- return &Merger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, notifier: notifier, logger: logger}
+func NewMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.RoDB, chainConfig *chain.Config, logger log.Logger) *Merger {
+ return &Merger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, logger: logger}
}
type Range struct {
from, to uint64
}
-func (r Range) From() uint64 { return r.from }
-func (r Range) To() uint64 { return r.to }
+func (r Range) From() uint64 { return r.from }
+func (r Range) To() uint64 { return r.to }
+func (r Range) IsRecent(max uint64) bool { return max-r.to < snaptype.Erigon2MergeLimit }
-func (*Merger) FindMergeRanges(currentRanges []Range) (toMerge []Range) {
+type Ranges []Range
+
+func (r Ranges) String() string {
+ return fmt.Sprintf("%d", r)
+}
+
+var MergeSteps = []uint64{500_000, 100_000, 10_000}
+var RecentMergeSteps = []uint64{100_000, 10_000}
+
+func (m *Merger) FindMergeRanges(currentRanges []Range, maxBlockNum uint64) (toMerge []Range) {
for i := len(currentRanges) - 1; i > 0; i-- {
r := currentRanges[i]
- if r.to-r.from >= snaptype.Erigon2SegmentSize { // is complete .seg
- continue
+ isRecent := r.IsRecent(maxBlockNum)
+ mergeLimit, mergeSteps := uint64(snaptype.Erigon2MergeLimit), MergeSteps
+ if isRecent {
+ mergeLimit, mergeSteps = snaptype.Erigon2RecentMergeLimit, RecentMergeSteps
}
- for _, span := range []uint64{500_000, 100_000, 10_000} {
+ if r.to-r.from >= mergeLimit {
+ continue
+ }
+ for _, span := range mergeSteps {
if r.to%span != 0 {
continue
}
@@ -2292,7 +2300,7 @@ func (m *Merger) filesByRange(snapshots *RoSnapshots, from, to uint64) (map[snap
}
// Merge does merge segments in given ranges
-func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges []Range, snapDir string, doIndex bool) error {
+func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges []Range, snapDir string, doIndex bool, onMerge func(r Range) error, onDelete func(l []string) error) error {
if len(mergeRanges) == 0 {
return nil
}
@@ -2304,7 +2312,7 @@ func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges
return err
}
- for _, t := range snaptype.AllSnapshotTypes {
+ for _, t := range snaptype.BlockSnapshotTypes {
segName := snaptype.SegmentFileName(r.from, r.to, t)
f, ok := snaptype.ParseFileName(snapDir, segName)
if !ok {
@@ -2324,11 +2332,20 @@ func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges
return fmt.Errorf("ReopenSegments: %w", err)
}
snapshots.LogStat()
- if m.notifier != nil { // notify about new snapshots of any size
- m.notifier.OnNewSnapshot()
- time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them
+
+ if err := onMerge(r); err != nil {
+ return err
}
- for _, t := range snaptype.AllSnapshotTypes {
+ for _, t := range snaptype.BlockSnapshotTypes {
+ if len(toMerge[t]) == 0 {
+ continue
+ }
+ if err := onDelete(toMerge[t]); err != nil {
+ return err
+ }
+ }
+ time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them
+ for _, t := range snaptype.BlockSnapshotTypes {
m.removeOldFiles(toMerge[t], snapDir)
}
}
@@ -2356,6 +2373,9 @@ func (m *Merger) merge(ctx context.Context, toMerge []string, targetFile string,
}
defer f.Close()
+ _, fName := filepath.Split(targetFile)
+ m.logger.Debug("[snapshots] merge", "file", fName)
+
for _, d := range cList {
if err := d.WithReadAhead(func() error {
g := d.MakeGetter()
diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go
index 68a3508d412..bfb051dbb04 100644
--- a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go
+++ b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go
@@ -6,6 +6,8 @@ import (
"testing"
"testing/fstest"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
"github.com/ledgerwatch/erigon-lib/compress"
"github.com/ledgerwatch/erigon-lib/downloader/snaptype"
"github.com/ledgerwatch/erigon-lib/recsplit"
@@ -15,8 +17,6 @@ import (
"github.com/ledgerwatch/erigon/common/math"
"github.com/ledgerwatch/erigon/eth/ethconfig"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
- "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg"
)
func createTestSegmentFile(t *testing.T, from, to uint64, name snaptype.Type, dir string, logger log.Logger) {
@@ -57,28 +57,86 @@ func createTestSegmentFile(t *testing.T, from, to uint64, name snaptype.Type, di
}
}
+func TestFindMergeRange(t *testing.T) {
+ merger := NewMerger("x", 1, log.LvlInfo, nil, params.MainnetChainConfig, nil)
+ t.Run("big", func(t *testing.T) {
+ var ranges []Range
+ for i := 0; i < 24; i++ {
+ ranges = append(ranges, Range{from: uint64(i * 100_000), to: uint64((i + 1) * 100_000)})
+ }
+ found := merger.FindMergeRanges(ranges, uint64(24*100_000))
+
+ expect := []Range{
+ {0, 500_000},
+ {500_000, 1_000_000},
+ {1_000_000, 1_500_000},
+ }
+ require.Equal(t, Ranges(expect).String(), Ranges(found).String())
+ })
+
+ t.Run("small", func(t *testing.T) {
+ var ranges Ranges
+ for i := 0; i < 240; i++ {
+ ranges = append(ranges, Range{from: uint64(i * 10_000), to: uint64((i + 1) * 10_000)})
+ }
+ found := merger.FindMergeRanges(ranges, uint64(240*10_000))
+
+ expect := Ranges{
+ {0, 500_000},
+ {500_000, 1_000_000},
+ {1_000_000, 1_500_000},
+ {1_500_000, 1_600_000},
+ {1_600_000, 1_700_000},
+ {1_700_000, 1_800_000},
+ {1_800_000, 1_900_000},
+ {1_900_000, 2_000_000},
+ {2_000_000, 2_100_000},
+ {2_100_000, 2_200_000},
+ {2_200_000, 2_300_000},
+ {2_300_000, 2_400_000},
+ }
+
+ require.Equal(t, expect.String(), Ranges(found).String())
+ })
+
+ t.Run("IsRecent", func(t *testing.T) {
+ require.True(t, Range{500_000, 599_000}.IsRecent(1_000_000))
+ require.True(t, Range{500_000, 501_000}.IsRecent(1_000_000))
+ require.False(t, Range{499_000, 500_000}.IsRecent(1_000_000))
+ require.False(t, Range{400_000, 500_000}.IsRecent(1_000_000))
+ require.False(t, Range{400_000, 401_000}.IsRecent(1_000_000))
+
+ require.False(t, Range{500_000, 501_000}.IsRecent(1_100_000))
+ })
+
+}
+
func TestMergeSnapshots(t *testing.T) {
logger := log.New()
dir, require := t.TempDir(), require.New(t)
createFile := func(from, to uint64) {
- for _, snT := range snaptype.AllSnapshotTypes {
+ for _, snT := range snaptype.BlockSnapshotTypes {
createTestSegmentFile(t, from, to, snT, dir, logger)
}
}
- N := uint64(7)
- createFile(0, 500_000)
- for i := uint64(500_000); i < 500_000+N*100_000; i += 100_000 {
+ N := uint64(17)
+ createFile(0, snaptype.Erigon2MergeLimit)
+ for i := uint64(snaptype.Erigon2MergeLimit); i < snaptype.Erigon2MergeLimit+N*100_000; i += 100_000 {
createFile(i, i+100_000)
}
s := NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: true}, dir, logger)
defer s.Close()
require.NoError(s.ReopenFolder())
{
- merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, nil, logger)
- ranges := merger.FindMergeRanges(s.Ranges())
+ merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, logger)
+ ranges := merger.FindMergeRanges(s.Ranges(), s.SegmentsMax())
require.True(len(ranges) > 0)
- err := merger.Merge(context.Background(), s, ranges, s.Dir(), false)
+ err := merger.Merge(context.Background(), s, ranges, s.Dir(), false, func(r Range) error {
+ return nil
+ }, func(l []string) error {
+ return nil
+ })
require.NoError(err)
}
@@ -90,14 +148,18 @@ func TestMergeSnapshots(t *testing.T) {
require.Equal(5, a)
{
- merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, nil, logger)
- ranges := merger.FindMergeRanges(s.Ranges())
+ merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, logger)
+ ranges := merger.FindMergeRanges(s.Ranges(), s.SegmentsMax())
require.True(len(ranges) == 0)
- err := merger.Merge(context.Background(), s, ranges, s.Dir(), false)
+ err := merger.Merge(context.Background(), s, ranges, s.Dir(), false, func(r Range) error {
+ return nil
+ }, func(l []string) error {
+ return nil
+ })
require.NoError(err)
}
- expectedFileName = snaptype.SegmentFileName(1_100_000, 1_200_000, snaptype.Transactions)
+ expectedFileName = snaptype.SegmentFileName(1_800_000, 1_900_000, snaptype.Transactions)
d, err = compress.NewDecompressor(filepath.Join(dir, expectedFileName))
require.NoError(err)
defer d.Close()
diff --git a/turbo/snapshotsync/freezeblocks/bor_snapshots.go b/turbo/snapshotsync/freezeblocks/bor_snapshots.go
index 9ef3490643b..a1240ccb52f 100644
--- a/turbo/snapshotsync/freezeblocks/bor_snapshots.go
+++ b/turbo/snapshotsync/freezeblocks/bor_snapshots.go
@@ -16,6 +16,7 @@ import (
"time"
"github.com/ledgerwatch/erigon-lib/chain"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
common2 "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/background"
"github.com/ledgerwatch/erigon-lib/common/cmp"
@@ -31,7 +32,6 @@ import (
"github.com/ledgerwatch/erigon/core/types"
"github.com/ledgerwatch/erigon/eth/ethconfig"
"github.com/ledgerwatch/erigon/turbo/services"
- "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg"
"github.com/ledgerwatch/log/v3"
"golang.org/x/exp/slices"
)
@@ -83,11 +83,6 @@ func (sn *BorEventSegment) reopenIdx(dir string) (err error) {
if err != nil {
return fmt.Errorf("%w, fileName: %s", err, fileName)
}
- if sn.IdxBorTxnHash.ModTime().Before(sn.seg.ModTime()) {
- // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent
- sn.IdxBorTxnHash.Close()
- sn.IdxBorTxnHash = nil
- }
return nil
}
@@ -154,11 +149,6 @@ func (sn *BorSpanSegment) reopenIdx(dir string) (err error) {
if err != nil {
return fmt.Errorf("%w, fileName: %s", err, fileName)
}
- if sn.idx.ModTime().Before(sn.seg.ModTime()) {
- // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent
- sn.idx.Close()
- sn.idx = nil
- }
return nil
}
@@ -191,7 +181,7 @@ func (br *BlockRetire) RetireBorBlocks(ctx context.Context, blockFrom, blockTo u
snapshots := br.borSnapshots()
firstTxNum := blockReader.(*BlockReader).FirstTxNumNotInSnapshots()
- if err := DumpBorBlocks(ctx, chainConfig, blockFrom, blockTo, snaptype.Erigon2SegmentSize, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil {
+ if err := DumpBorBlocks(ctx, chainConfig, blockFrom, blockTo, snaptype.Erigon2MergeLimit, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil {
return fmt.Errorf("DumpBorBlocks: %w", err)
}
if err := snapshots.ReopenFolder(); err != nil {
@@ -202,31 +192,32 @@ func (br *BlockRetire) RetireBorBlocks(ctx context.Context, blockFrom, blockTo u
notifier.OnNewSnapshot()
}
merger := NewBorMerger(tmpDir, workers, lvl, db, chainConfig, notifier, logger)
- rangesToMerge := merger.FindMergeRanges(snapshots.Ranges())
+ rangesToMerge := merger.FindMergeRanges(snapshots.Ranges(), snapshots.BlocksAvailable())
if len(rangesToMerge) == 0 {
return nil
}
- err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */)
- if err != nil {
- return err
- }
- if err := snapshots.ReopenFolder(); err != nil {
- return fmt.Errorf("reopen: %w", err)
- }
- snapshots.LogStat()
- if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size
- notifier.OnNewSnapshot()
- }
- downloadRequest := make([]services.DownloadRequest, 0, len(rangesToMerge))
- for i := range rangesToMerge {
- r := &services.Range{From: rangesToMerge[i].from, To: rangesToMerge[i].to}
- downloadRequest = append(downloadRequest, services.NewDownloadRequest(r, "", "", true /* Bor */))
- }
+ onMerge := func(r Range) error {
+ if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size
+ notifier.OnNewSnapshot()
+ }
- if seedNewSnapshots != nil {
- if err := seedNewSnapshots(downloadRequest); err != nil {
- return err
+ if seedNewSnapshots != nil {
+ downloadRequest := []services.DownloadRequest{
+ services.NewDownloadRequest(&services.Range{From: r.from, To: r.to}, "", "", true /* Bor */),
+ }
+ if err := seedNewSnapshots(downloadRequest); err != nil {
+ return err
+ }
}
+ return nil
+ }
+ onDelete := func(files []string) error {
+ //TODO: add Downloader API to delete files
+ return nil
+ }
+ err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete)
+ if err != nil {
+ return err
}
return nil
}
@@ -1075,14 +1066,19 @@ func NewBorMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.Ro
return &BorMerger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, notifier: notifier, logger: logger}
}
-func (*BorMerger) FindMergeRanges(currentRanges []Range) (toMerge []Range) {
+func (m *BorMerger) FindMergeRanges(currentRanges []Range, maxBlockNum uint64) (toMerge []Range) {
for i := len(currentRanges) - 1; i > 0; i-- {
r := currentRanges[i]
- if r.to-r.from >= snaptype.Erigon2SegmentSize { // is complete .seg
- continue
+ isRecent := r.IsRecent(maxBlockNum)
+ mergeLimit, mergeSteps := uint64(snaptype.Erigon2RecentMergeLimit), MergeSteps
+ if isRecent {
+ mergeLimit, mergeSteps = snaptype.Erigon2MergeLimit, RecentMergeSteps
}
- for _, span := range []uint64{500_000, 100_000, 10_000} {
+ if r.to-r.from >= mergeLimit {
+ continue
+ }
+ for _, span := range mergeSteps {
if r.to%span != 0 {
continue
}
@@ -1124,7 +1120,7 @@ func (m *BorMerger) filesByRange(snapshots *BorRoSnapshots, from, to uint64) (ma
}
// Merge does merge segments in given ranges
-func (m *BorMerger) Merge(ctx context.Context, snapshots *BorRoSnapshots, mergeRanges []Range, snapDir string, doIndex bool) error {
+func (m *BorMerger) Merge(ctx context.Context, snapshots *BorRoSnapshots, mergeRanges []Range, snapDir string, doIndex bool, onMerge func(r Range) error, onDelete func(l []string) error) error {
if len(mergeRanges) == 0 {
return nil
}
@@ -1156,11 +1152,19 @@ func (m *BorMerger) Merge(ctx context.Context, snapshots *BorRoSnapshots, mergeR
return fmt.Errorf("ReopenSegments: %w", err)
}
snapshots.LogStat()
- if m.notifier != nil { // notify about new snapshots of any size
- m.notifier.OnNewSnapshot()
- time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them
+ if err := onMerge(r); err != nil {
+ return err
+ }
+ for _, t := range snaptype.BlockSnapshotTypes {
+ if len(toMerge[t]) == 0 {
+ continue
+ }
+ if err := onDelete(toMerge[t]); err != nil {
+ return err
+ }
}
- for _, t := range []snaptype.Type{snaptype.BorEvents} {
+ time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them
+ for _, t := range snaptype.BlockSnapshotTypes {
m.removeOldFiles(toMerge[t], snapDir)
}
}
diff --git a/turbo/snapshotsync/freezeblocks/caplin_snapshots.go b/turbo/snapshotsync/freezeblocks/caplin_snapshots.go
new file mode 100644
index 00000000000..064de66a85d
--- /dev/null
+++ b/turbo/snapshotsync/freezeblocks/caplin_snapshots.go
@@ -0,0 +1,401 @@
+package freezeblocks
+
+import (
+ "bytes"
+ "context"
+ "encoding/binary"
+ "errors"
+ "fmt"
+ "os"
+ "path"
+ "path/filepath"
+ "sync"
+ "sync/atomic"
+
+ "github.com/ledgerwatch/erigon-lib/common/background"
+ "github.com/ledgerwatch/erigon-lib/common/cmp"
+ "github.com/ledgerwatch/erigon-lib/common/dbg"
+ "github.com/ledgerwatch/erigon-lib/compress"
+ "github.com/ledgerwatch/erigon-lib/downloader/snaptype"
+ "github.com/ledgerwatch/erigon-lib/kv"
+ "github.com/ledgerwatch/erigon-lib/recsplit"
+ "github.com/ledgerwatch/erigon/cl/persistence"
+ "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format"
+ "github.com/ledgerwatch/erigon/eth/ethconfig"
+ "github.com/ledgerwatch/log/v3"
+ "github.com/pierrec/lz4"
+)
+
+type BeaconBlockSegment struct {
+ seg *compress.Decompressor // value: chunked(ssz(SignedBeaconBlocks))
+ idxSlot *recsplit.Index // slot -> beacon_slot_segment_offset
+ ranges Range
+}
+
+func (sn *BeaconBlockSegment) closeIdx() {
+ if sn.idxSlot != nil {
+ sn.idxSlot.Close()
+ sn.idxSlot = nil
+ }
+}
+func (sn *BeaconBlockSegment) closeSeg() {
+ if sn.seg != nil {
+ sn.seg.Close()
+ sn.seg = nil
+ }
+}
+func (sn *BeaconBlockSegment) close() {
+ sn.closeSeg()
+ sn.closeIdx()
+}
+func (sn *BeaconBlockSegment) reopenSeg(dir string) (err error) {
+ sn.closeSeg()
+ fileName := snaptype.SegmentFileName(sn.ranges.from, sn.ranges.to, snaptype.BeaconBlocks)
+ sn.seg, err = compress.NewDecompressor(path.Join(dir, fileName))
+ if err != nil {
+ return fmt.Errorf("%w, fileName: %s", err, fileName)
+ }
+ return nil
+}
+func (sn *BeaconBlockSegment) reopenIdxIfNeed(dir string, optimistic bool) (err error) {
+ if sn.idxSlot != nil {
+ return nil
+ }
+ err = sn.reopenIdx(dir)
+ if err != nil {
+ if !errors.Is(err, os.ErrNotExist) {
+ if optimistic {
+ log.Warn("[snapshots] open index", "err", err)
+ } else {
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+func (sn *BeaconBlockSegment) reopenIdx(dir string) (err error) {
+ sn.closeIdx()
+ if sn.seg == nil {
+ return nil
+ }
+ fileName := snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.BeaconBlocks.String())
+ sn.idxSlot, err = recsplit.OpenIndex(path.Join(dir, fileName))
+ if err != nil {
+ return fmt.Errorf("%w, fileName: %s", err, fileName)
+ }
+ return nil
+}
+
+type beaconBlockSegments struct {
+ lock sync.RWMutex
+ segments []*BeaconBlockSegment
+}
+
+func (s *beaconBlockSegments) View(f func(segments []*BeaconBlockSegment) error) error {
+ s.lock.RLock()
+ defer s.lock.RUnlock()
+ return f(s.segments)
+}
+
+func BeaconBlocksIdx(ctx context.Context, sn snaptype.FileInfo, segmentFilePath string, blockFrom, blockTo uint64, snapDir string, tmpDir string, p *background.Progress, lvl log.Lvl, logger log.Logger) (err error) {
+ defer func() {
+ if rec := recover(); rec != nil {
+ err = fmt.Errorf("BeaconBlocksIdx: at=%d-%d, %v, %s", blockFrom, blockTo, rec, dbg.Stack())
+ }
+ }()
+
+ // Calculate how many records there will be in the index
+ d, err := compress.NewDecompressor(path.Join(snapDir, segmentFilePath))
+ if err != nil {
+ return err
+ }
+ defer d.Close()
+
+ _, fname := filepath.Split(segmentFilePath)
+ p.Name.Store(&fname)
+ p.Total.Store(uint64(d.Count()))
+
+ if err := Idx(ctx, d, sn.From, tmpDir, log.LvlDebug, func(idx *recsplit.RecSplit, i, offset uint64, word []byte) error {
+ if i%100_000 == 0 {
+ logger.Log(lvl, "Compressing beacon blocks", "progress", i)
+ }
+ p.Processed.Add(1)
+ num := make([]byte, 8)
+ n := binary.PutUvarint(num, i)
+ if err := idx.AddKey(num[:n], offset); err != nil {
+ return err
+ }
+ return nil
+ }, logger); err != nil {
+ return fmt.Errorf("BodyNumberIdx: %w", err)
+ }
+
+ return nil
+}
+
+type CaplinSnapshots struct {
+ indicesReady atomic.Bool
+ segmentsReady atomic.Bool
+
+ BeaconBlocks *beaconBlockSegments
+
+ dir string
+ segmentsMax atomic.Uint64 // all types of .seg files are available - up to this number
+ idxMax atomic.Uint64 // all types of .idx files are available - up to this number
+ cfg ethconfig.BlocksFreezing
+ logger log.Logger
+}
+
+// NewCaplinSnapshots - opens all snapshots. But to simplify everything:
+// - it opens snapshots only on App start and immutable after
+// - all snapshots of given blocks range must exist - to make this blocks range available
+// - gaps are not allowed
+// - segment have [from:to) semantic
+func NewCaplinSnapshots(cfg ethconfig.BlocksFreezing, snapDir string, logger log.Logger) *CaplinSnapshots {
+ return &CaplinSnapshots{dir: snapDir, cfg: cfg, BeaconBlocks: &beaconBlockSegments{}, logger: logger}
+}
+
+func (s *CaplinSnapshots) IndicesMax() uint64 { return s.idxMax.Load() }
+func (s *CaplinSnapshots) SegmentsMax() uint64 { return s.segmentsMax.Load() }
+func (s *CaplinSnapshots) BlocksAvailable() uint64 {
+ return cmp.Min(s.segmentsMax.Load(), s.idxMax.Load())
+}
+
+// ReopenList stops on optimistic=false, continue opening files on optimistic=true
+func (s *CaplinSnapshots) ReopenList(fileNames []string, optimistic bool) error {
+ s.BeaconBlocks.lock.Lock()
+ defer s.BeaconBlocks.lock.Unlock()
+
+ s.closeWhatNotInList(fileNames)
+ var segmentsMax uint64
+ var segmentsMaxSet bool
+Loop:
+ for _, fName := range fileNames {
+ f, ok := snaptype.ParseFileName(s.dir, fName)
+ if !ok {
+ continue
+ }
+ var processed bool = true
+
+ switch f.T {
+ case snaptype.BeaconBlocks:
+ var sn *BeaconBlockSegment
+ var exists bool
+ for _, sn2 := range s.BeaconBlocks.segments {
+ if sn2.seg == nil { // it's ok if some segment was not able to open
+ continue
+ }
+ if fName == sn2.seg.FileName() {
+ sn = sn2
+ exists = true
+ break
+ }
+ }
+ if !exists {
+ sn = &BeaconBlockSegment{ranges: Range{f.From, f.To}}
+ }
+ if err := sn.reopenSeg(s.dir); err != nil {
+ if errors.Is(err, os.ErrNotExist) {
+ if optimistic {
+ continue Loop
+ } else {
+ break Loop
+ }
+ }
+ if optimistic {
+ s.logger.Warn("[snapshots] open segment", "err", err)
+ continue Loop
+ } else {
+ return err
+ }
+ }
+
+ if !exists {
+ // it's possible to iterate over .seg file even if you don't have index
+ // then make segment available even if index open may fail
+ s.BeaconBlocks.segments = append(s.BeaconBlocks.segments, sn)
+ }
+ if err := sn.reopenIdxIfNeed(s.dir, optimistic); err != nil {
+ return err
+ }
+ }
+
+ if processed {
+ if f.To > 0 {
+ segmentsMax = f.To - 1
+ } else {
+ segmentsMax = 0
+ }
+ segmentsMaxSet = true
+ }
+ }
+ if segmentsMaxSet {
+ s.segmentsMax.Store(segmentsMax)
+ }
+ s.segmentsReady.Store(true)
+ s.idxMax.Store(s.idxAvailability())
+ s.indicesReady.Store(true)
+
+ return nil
+}
+
+func (s *CaplinSnapshots) idxAvailability() uint64 {
+ var beaconBlocks uint64
+ for _, seg := range s.BeaconBlocks.segments {
+ if seg.idxSlot == nil {
+ break
+ }
+ beaconBlocks = seg.ranges.to - 1
+ }
+ return beaconBlocks
+}
+
+func (s *CaplinSnapshots) ReopenFolder() error {
+ files, _, err := SegmentsCaplin(s.dir)
+ if err != nil {
+ return err
+ }
+ list := make([]string, 0, len(files))
+ for _, f := range files {
+ _, fName := filepath.Split(f.Path)
+ list = append(list, fName)
+ }
+ return s.ReopenList(list, false)
+}
+
+func (s *CaplinSnapshots) closeWhatNotInList(l []string) {
+Loop1:
+ for i, sn := range s.BeaconBlocks.segments {
+ if sn.seg == nil {
+ continue Loop1
+ }
+ _, name := filepath.Split(sn.seg.FilePath())
+ for _, fName := range l {
+ if fName == name {
+ continue Loop1
+ }
+ }
+ sn.close()
+ s.BeaconBlocks.segments[i] = nil
+ }
+ var i int
+ for i = 0; i < len(s.BeaconBlocks.segments) && s.BeaconBlocks.segments[i] != nil && s.BeaconBlocks.segments[i].seg != nil; i++ {
+ }
+ tail := s.BeaconBlocks.segments[i:]
+ s.BeaconBlocks.segments = s.BeaconBlocks.segments[:i]
+ for i = 0; i < len(tail); i++ {
+ if tail[i] != nil {
+ tail[i].close()
+ tail[i] = nil
+ }
+ }
+}
+
+type CaplinView struct {
+ s *CaplinSnapshots
+ closed bool
+}
+
+func (s *CaplinSnapshots) View() *CaplinView {
+ v := &CaplinView{s: s}
+ v.s.BeaconBlocks.lock.RLock()
+ return v
+}
+
+func (v *CaplinView) Close() {
+ if v.closed {
+ return
+ }
+ v.closed = true
+ v.s.BeaconBlocks.lock.RUnlock()
+
+}
+
+func (v *CaplinView) BeaconBlocks() []*BeaconBlockSegment { return v.s.BeaconBlocks.segments }
+
+func (v *CaplinView) BeaconBlocksSegment(slot uint64) (*BeaconBlockSegment, bool) {
+ for _, seg := range v.BeaconBlocks() {
+ if !(slot >= seg.ranges.from && slot < seg.ranges.to) {
+ continue
+ }
+ return seg, true
+ }
+ return nil, false
+}
+
+func dumpBeaconBlocksRange(ctx context.Context, db kv.RoDB, b persistence.BlockSource, fromSlot uint64, toSlot uint64, tmpDir, snapDir string, workers int, lvl log.Lvl, logger log.Logger) error {
+ segName := snaptype.SegmentFileName(fromSlot, toSlot, snaptype.BeaconBlocks)
+ f, _ := snaptype.ParseFileName(snapDir, segName)
+
+ sn, err := compress.NewCompressor(ctx, "Snapshot BeaconBlocks", f.Path, tmpDir, compress.MinPatternScore, workers, lvl, logger)
+ if err != nil {
+ return err
+ }
+ defer sn.Close()
+
+ tx, err := db.BeginRo(ctx)
+ if err != nil {
+ return err
+ }
+ defer tx.Rollback()
+ var w bytes.Buffer
+ lzWriter := lz4.NewWriter(&w)
+ defer lzWriter.Close()
+ // Generate .seg file, which is just the list of beacon blocks.
+ for i := fromSlot; i < toSlot; i++ {
+ obj, err := b.GetBlock(ctx, tx, i)
+ if err != nil {
+ return err
+ }
+ if i%20_000 == 0 {
+ logger.Log(lvl, "Dumping beacon blocks", "progress", i)
+ }
+ if obj == nil {
+
+ if err := sn.AddWord(nil); err != nil {
+ return err
+ }
+ continue
+ }
+ lzWriter.Reset(&w)
+ lzWriter.CompressionLevel = 1
+ if err := snapshot_format.WriteBlockForSnapshot(obj.Data, lzWriter); err != nil {
+ return err
+ }
+ if err := lzWriter.Flush(); err != nil {
+ return err
+ }
+ word := w.Bytes()
+
+ if err := sn.AddWord(word); err != nil {
+ return err
+ }
+ w.Reset()
+ }
+ if err := sn.Compress(); err != nil {
+ return fmt.Errorf("compress: %w", err)
+ }
+ // Generate .idx file, which is the slot => offset mapping.
+ p := &background.Progress{}
+
+ return BeaconBlocksIdx(ctx, f, segName, fromSlot, toSlot, snapDir, tmpDir, p, lvl, logger)
+}
+
+func DumpBeaconBlocks(ctx context.Context, db kv.RoDB, b persistence.BlockSource, fromSlot, toSlot, blocksPerFile uint64, tmpDir, snapDir string, workers int, lvl log.Lvl, logger log.Logger) error {
+ if blocksPerFile == 0 {
+ return nil
+ }
+
+ for i := fromSlot; i < toSlot; i = chooseSegmentEnd(i, toSlot, blocksPerFile) {
+ if toSlot-i < blocksPerFile {
+ break
+ }
+ to := chooseSegmentEnd(i, toSlot, blocksPerFile)
+ logger.Log(lvl, "Dumping beacon blocks", "from", i, "to", to)
+ if err := dumpBeaconBlocksRange(ctx, db, b, i, to, tmpDir, snapDir, workers, lvl, logger); err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/turbo/snapshotsync/freezeblocks/dump_test.go b/turbo/snapshotsync/freezeblocks/dump_test.go
index a7c3b95a8d1..1aae85d6461 100644
--- a/turbo/snapshotsync/freezeblocks/dump_test.go
+++ b/turbo/snapshotsync/freezeblocks/dump_test.go
@@ -5,6 +5,8 @@ import (
"testing"
"github.com/holiman/uint256"
+ "github.com/ledgerwatch/erigon-lib/chain/networkname"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
"github.com/ledgerwatch/log/v3"
"github.com/stretchr/testify/require"
@@ -18,10 +20,8 @@ import (
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/ethdb/prune"
"github.com/ledgerwatch/erigon/params"
- "github.com/ledgerwatch/erigon/params/networkname"
"github.com/ledgerwatch/erigon/rlp"
"github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks"
- "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg"
"github.com/ledgerwatch/erigon/turbo/stages/mock"
)
diff --git a/turbo/snapshotsync/snapshotsync.go b/turbo/snapshotsync/snapshotsync.go
index 2d2ef7b30bb..2298ba8ed79 100644
--- a/turbo/snapshotsync/snapshotsync.go
+++ b/turbo/snapshotsync/snapshotsync.go
@@ -9,6 +9,7 @@ import (
"time"
"github.com/ledgerwatch/erigon-lib/chain"
+ "github.com/ledgerwatch/erigon-lib/chain/snapcfg"
"github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/dbg"
"github.com/ledgerwatch/erigon-lib/downloader/downloadergrpc"
@@ -20,12 +21,21 @@ import (
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/turbo/services"
- "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg"
"github.com/ledgerwatch/log/v3"
)
+type CaplinMode int
+
+const (
+
+ // CaplinModeNone - no caplin mode
+ NoCaplin CaplinMode = 1
+ OnlyCaplin CaplinMode = 2
+ AlsoCaplin CaplinMode = 3
+)
+
func BuildProtoRequest(downloadRequest []services.DownloadRequest) *proto_downloader.DownloadRequest {
- req := &proto_downloader.DownloadRequest{Items: make([]*proto_downloader.DownloadItem, 0, len(snaptype.AllSnapshotTypes))}
+ req := &proto_downloader.DownloadRequest{Items: make([]*proto_downloader.DownloadItem, 0, len(snaptype.BlockSnapshotTypes))}
for _, r := range downloadRequest {
if r.Path != "" {
if r.TorrentHash != "" {
@@ -39,17 +49,14 @@ func BuildProtoRequest(downloadRequest []services.DownloadRequest) *proto_downlo
})
}
} else {
- if r.Ranges.To-r.Ranges.From != snaptype.Erigon2SegmentSize {
- continue
- }
if r.Bor {
- for _, t := range []snaptype.Type{snaptype.BorEvents, snaptype.BorSpans} {
+ for _, t := range snaptype.BorSnapshotTypes {
req.Items = append(req.Items, &proto_downloader.DownloadItem{
Path: snaptype.SegmentFileName(r.Ranges.From, r.Ranges.To, t),
})
}
} else {
- for _, t := range snaptype.AllSnapshotTypes {
+ for _, t := range snaptype.BlockSnapshotTypes {
req.Items = append(req.Items, &proto_downloader.DownloadItem{
Path: snaptype.SegmentFileName(r.Ranges.From, r.Ranges.To, t),
})
@@ -72,7 +79,7 @@ func RequestSnapshotsDownload(ctx context.Context, downloadRequest []services.Do
// WaitForDownloader - wait for Downloader service to download all expected snapshots
// for MVP we sync with Downloader only once, in future will send new snapshots also
-func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, agg *state.AggregatorV3, tx kv.RwTx, blockReader services.FullBlockReader, notifier services.DBEventNotifier, cc *chain.Config, snapshotDownloader proto_downloader.DownloaderClient) error {
+func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, caplin CaplinMode, agg *state.AggregatorV3, tx kv.RwTx, blockReader services.FullBlockReader, notifier services.DBEventNotifier, cc *chain.Config, snapshotDownloader proto_downloader.DownloaderClient) error {
snapshots := blockReader.Snapshots()
borSnapshots := blockReader.BorSnapshots()
if blockReader.FreezingCfg().NoDownloader {
@@ -131,6 +138,12 @@ func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, agg *
continue
}
}
+ if caplin == NoCaplin && strings.Contains(p.Name, "beaconblocks") {
+ continue
+ }
+ if caplin == OnlyCaplin && !strings.Contains(p.Name, "beaconblocks") {
+ continue
+ }
_, exists := existingFilesMap[p.Name]
_, borExists := borExistingFilesMap[p.Name]
diff --git a/turbo/stages/blockchain_test.go b/turbo/stages/blockchain_test.go
index 4f639b56483..1240e372064 100644
--- a/turbo/stages/blockchain_test.go
+++ b/turbo/stages/blockchain_test.go
@@ -21,6 +21,7 @@ import (
"encoding/binary"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math"
"math/big"
"testing"
@@ -38,7 +39,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/bitmapdb"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/common/u256"
"github.com/ledgerwatch/erigon/consensus/ethash"
"github.com/ledgerwatch/erigon/core"
diff --git a/turbo/stages/headerdownload/header_algos.go b/turbo/stages/headerdownload/header_algos.go
index 2da72ee05ff..e7b8a29e8fe 100644
--- a/turbo/stages/headerdownload/header_algos.go
+++ b/turbo/stages/headerdownload/header_algos.go
@@ -8,6 +8,7 @@ import (
"encoding/base64"
"errors"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"io"
"math/big"
"sort"
@@ -23,7 +24,6 @@ import (
"github.com/ledgerwatch/erigon/turbo/services"
"github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/core/rawdb"
"github.com/ledgerwatch/erigon/core/types"
diff --git a/turbo/stages/mock/mock_sentry.go b/turbo/stages/mock/mock_sentry.go
index f584ca969d5..54e2de6383d 100644
--- a/turbo/stages/mock/mock_sentry.go
+++ b/turbo/stages/mock/mock_sentry.go
@@ -33,7 +33,6 @@ import (
"github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg"
types2 "github.com/ledgerwatch/erigon-lib/types"
- "github.com/ledgerwatch/erigon/cmd/sentry/sentry"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/bor"
"github.com/ledgerwatch/erigon/consensus/ethash"
@@ -51,6 +50,7 @@ import (
"github.com/ledgerwatch/erigon/eth/stagedsync"
"github.com/ledgerwatch/erigon/eth/stagedsync/stages"
"github.com/ledgerwatch/erigon/ethdb/prune"
+ "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client"
"github.com/ledgerwatch/erigon/params"
"github.com/ledgerwatch/erigon/rlp"
"github.com/ledgerwatch/erigon/turbo/builder"
@@ -84,7 +84,7 @@ type MockSentry struct {
MiningSync *stagedsync.Sync
PendingBlocks chan *types.Block
MinedBlocks chan *types.Block
- sentriesClient *sentry.MultiClient
+ sentriesClient *sentry_multi_client.MultiClient
Key *ecdsa.PrivateKey
Genesis *types.Block
SentryClient direct.SentryClient
@@ -309,7 +309,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK
shanghaiTime := mock.ChainConfig.ShanghaiTime
cancunTime := mock.ChainConfig.CancunTime
maxBlobsPerBlock := mock.ChainConfig.GetMaxBlobsPerBlock()
- mock.TxPool, err = txpool.New(newTxs, mock.DB, poolCfg, kvcache.NewDummy(), *chainID, shanghaiTime, cancunTime, maxBlobsPerBlock, logger)
+ mock.TxPool, err = txpool.New(newTxs, mock.DB, poolCfg, kvcache.NewDummy(), *chainID, shanghaiTime, nil /* agraBlock */, cancunTime, maxBlobsPerBlock, logger)
if err != nil {
tb.Fatal(err)
}
@@ -367,7 +367,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK
networkID := uint64(1)
maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 }
- mock.sentriesClient, err = sentry.NewMultiClient(
+ mock.sentriesClient, err = sentry_multi_client.NewMultiClient(
mock.DB,
"mock",
mock.ChainConfig,
diff --git a/turbo/stages/stageloop.go b/turbo/stages/stageloop.go
index 17c2e6628f7..e12240a115a 100644
--- a/turbo/stages/stageloop.go
+++ b/turbo/stages/stageloop.go
@@ -19,7 +19,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv/membatchwithdb"
"github.com/ledgerwatch/erigon-lib/state"
- "github.com/ledgerwatch/erigon/cmd/sentry/sentry"
"github.com/ledgerwatch/erigon/consensus"
"github.com/ledgerwatch/erigon/consensus/bor/finality/flags"
"github.com/ledgerwatch/erigon/consensus/bor/heimdall"
@@ -33,6 +32,7 @@ import (
"github.com/ledgerwatch/erigon/eth/stagedsync/stages"
"github.com/ledgerwatch/erigon/eth/tracers"
"github.com/ledgerwatch/erigon/p2p"
+ "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client"
"github.com/ledgerwatch/erigon/turbo/engineapi/engine_helpers"
"github.com/ledgerwatch/erigon/turbo/services"
"github.com/ledgerwatch/erigon/turbo/shards"
@@ -444,11 +444,18 @@ func StateStep(ctx context.Context, chainReader consensus.ChainReader, engine co
return nil
}
+func silkwormForExecutionStage(silkworm *silkworm.Silkworm, cfg *ethconfig.Config) *silkworm.Silkworm {
+ if cfg.SilkwormExecution {
+ return silkworm
+ }
+ return nil
+}
+
func NewDefaultStages(ctx context.Context,
db kv.RwDB,
p2pCfg p2p.Config,
cfg *ethconfig.Config,
- controlServer *sentry.MultiClient,
+ controlServer *sentry_multi_client.MultiClient,
notifications *shards.Notifications,
snapDownloader proto_downloader.DownloaderClient,
blockReader services.FullBlockReader,
@@ -498,7 +505,7 @@ func NewDefaultStages(ctx context.Context,
cfg.Genesis,
cfg.Sync,
agg,
- silkworm,
+ silkwormForExecutionStage(silkworm, cfg),
),
stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3),
stagedsync.StageTrieCfg(db, true, true, false, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg),
@@ -513,7 +520,7 @@ func NewDefaultStages(ctx context.Context,
func NewPipelineStages(ctx context.Context,
db kv.RwDB,
cfg *ethconfig.Config,
- controlServer *sentry.MultiClient,
+ controlServer *sentry_multi_client.MultiClient,
notifications *shards.Notifications,
snapDownloader proto_downloader.DownloaderClient,
blockReader services.FullBlockReader,
@@ -553,7 +560,7 @@ func NewPipelineStages(ctx context.Context,
cfg.Genesis,
cfg.Sync,
agg,
- silkworm,
+ silkwormForExecutionStage(silkworm, cfg),
),
stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3),
stagedsync.StageTrieCfg(db, checkStateRoot, true, false, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg),
@@ -565,7 +572,7 @@ func NewPipelineStages(ctx context.Context,
runInTestMode)
}
-func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, controlServer *sentry.MultiClient,
+func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, controlServer *sentry_multi_client.MultiClient,
dirs datadir.Dirs, notifications *shards.Notifications, blockReader services.FullBlockReader, blockWriter *blockio.BlockWriter, agg *state.AggregatorV3,
silkworm *silkworm.Silkworm, logger log.Logger) *stagedsync.Sync {
return stagedsync.New(
@@ -592,7 +599,7 @@ func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config
cfg.Genesis,
cfg.Sync,
agg,
- silkworm,
+ silkwormForExecutionStage(silkworm, cfg),
),
stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3),
stagedsync.StageTrieCfg(db, true, true, true, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg)),
diff --git a/turbo/trie/account_node_test.go b/turbo/trie/account_node_test.go
index bab99834d1c..0e787a2daa1 100644
--- a/turbo/trie/account_node_test.go
+++ b/turbo/trie/account_node_test.go
@@ -2,6 +2,7 @@ package trie
import (
"crypto/ecdsa"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"reflect"
"testing"
@@ -9,7 +10,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"golang.org/x/crypto/sha3"
- "github.com/ledgerwatch/erigon/common/dbutils"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/crypto"
)
diff --git a/turbo/trie/delete_subrtee_test.go b/turbo/trie/delete_subrtee_test.go
index 9cc4e5d9207..32fe9355adb 100644
--- a/turbo/trie/delete_subrtee_test.go
+++ b/turbo/trie/delete_subrtee_test.go
@@ -10,7 +10,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/length"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/crypto"
)
@@ -49,17 +48,17 @@ func TestTrieDeleteSubtree_ShortNode_Debug(t *testing.T) {
key := []byte{uint8(1)}
val := []byte{uint8(1)}
- keyHash, err := common.HashData(key)
+ keyHash, err := libcommon.HashData(key)
if err != nil {
t.Fatal(err)
}
- addrHash1, err := common.HashData(addr1[:])
+ addrHash1, err := libcommon.HashData(addr1[:])
if err != nil {
t.Fatal(err)
}
- addrHash2, err := common.HashData(addr2[:])
+ addrHash2, err := libcommon.HashData(addr2[:])
if err != nil {
t.Fatal(err)
}
@@ -365,7 +364,7 @@ func TestAccountNotRemovedAfterRemovingSubtrieAfterAccount(t *testing.T) {
if err != nil {
t.Fatal(err)
}
- addrHash, err := common.HashData(crypto.PubkeyToAddress(key.PublicKey).Bytes())
+ addrHash, err := libcommon.HashData(crypto.PubkeyToAddress(key.PublicKey).Bytes())
if err != nil {
t.Fatal(err)
}
@@ -377,13 +376,13 @@ func TestAccountNotRemovedAfterRemovingSubtrieAfterAccount(t *testing.T) {
}
val1 := []byte("1")
- dataKey1, err := common.HashData([]byte("1"))
+ dataKey1, err := libcommon.HashData([]byte("1"))
if err != nil {
t.Fatal(err)
}
val2 := []byte("2")
- dataKey2, err := common.HashData([]byte("2"))
+ dataKey2, err := libcommon.HashData([]byte("2"))
if err != nil {
t.Fatal(err)
}
diff --git a/turbo/trie/flatdb_sub_trie_loader_test.go b/turbo/trie/flatdb_sub_trie_loader_test.go
index 94eb131a23f..b288174365e 100644
--- a/turbo/trie/flatdb_sub_trie_loader_test.go
+++ b/turbo/trie/flatdb_sub_trie_loader_test.go
@@ -83,13 +83,13 @@ func TestIsBefore(t *testing.T) {
assert.Equal(true, is)
contract := fmt.Sprintf("2%063x", 0)
- storageKey := common.Hex2Bytes(contract + "ffffffff" + fmt.Sprintf("10%062x", 0))
- cacheKey := common.Hex2Bytes(contract + "ffffffff" + "20")
+ storageKey := libcommon.Hex2Bytes(contract + "ffffffff" + fmt.Sprintf("10%062x", 0))
+ cacheKey := libcommon.Hex2Bytes(contract + "ffffffff" + "20")
is = keyIsBefore(cacheKey, storageKey)
assert.False(is)
- storageKey = common.Hex2Bytes(contract + "ffffffffffffffff" + fmt.Sprintf("20%062x", 0))
- cacheKey = common.Hex2Bytes(contract + "ffffffffffffffff" + "10")
+ storageKey = libcommon.Hex2Bytes(contract + "ffffffffffffffff" + fmt.Sprintf("20%062x", 0))
+ cacheKey = libcommon.Hex2Bytes(contract + "ffffffffffffffff" + "10")
is = keyIsBefore(cacheKey, storageKey)
assert.True(is)
}
diff --git a/turbo/trie/hashbuilder.go b/turbo/trie/hashbuilder.go
index 26e166daee5..18059dcf057 100644
--- a/turbo/trie/hashbuilder.go
+++ b/turbo/trie/hashbuilder.go
@@ -11,7 +11,6 @@ import (
length2 "github.com/ledgerwatch/erigon-lib/common/length"
"golang.org/x/crypto/sha3"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/rlp"
@@ -83,11 +82,11 @@ func (hb *HashBuilder) leaf(length int, keyHex []byte, val rlphacks.RlpSerializa
return fmt.Errorf("length %d", length)
}
if hb.proofElement != nil {
- hb.proofElement.storageKey = common.CopyBytes(keyHex[:len(keyHex)-1])
+ hb.proofElement.storageKey = libcommon.CopyBytes(keyHex[:len(keyHex)-1])
hb.proofElement.storageValue = new(uint256.Int).SetBytes(val.RawBytes())
}
key := keyHex[len(keyHex)-length:]
- s := &shortNode{Key: common.CopyBytes(key), Val: valueNode(common.CopyBytes(val.RawBytes()))}
+ s := &shortNode{Key: libcommon.CopyBytes(key), Val: valueNode(libcommon.CopyBytes(val.RawBytes()))}
hb.nodeStack = append(hb.nodeStack, s)
if err := hb.leafHashWithKeyVal(key, val); err != nil {
return err
@@ -233,7 +232,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I
// Root is on top of the stack
root = hb.nodeStack[len(hb.nodeStack)-popped-1]
if root == nil {
- root = hashNode{hash: common.CopyBytes(hb.acc.Root[:])}
+ root = hashNode{hash: libcommon.CopyBytes(hb.acc.Root[:])}
}
}
popped++
@@ -260,7 +259,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I
// we capture it with the account proof element. Note, we also store the
// full key as this root could be for a different account in the negative
// case.
- hb.proofElement.storageRootKey = common.CopyBytes(fullKey)
+ hb.proofElement.storageRootKey = libcommon.CopyBytes(fullKey)
hb.proofElement.storageRoot = hb.acc.Root
}
var accCopy accounts.Account
@@ -271,7 +270,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I
}
a := &accountNode{accCopy, root, true, accountCode, accountCodeSize}
- s := &shortNode{Key: common.CopyBytes(key), Val: a}
+ s := &shortNode{Key: libcommon.CopyBytes(key), Val: a}
// this invocation will take care of the popping given number of items from both hash stack and node stack,
// pushing resulting hash to the hash stack, and nil to the node stack
if err = hb.accountLeafHashWithKey(key, popped); err != nil {
@@ -373,10 +372,10 @@ func (hb *HashBuilder) extension(key []byte) error {
var s *shortNode
switch n := nd.(type) {
case nil:
- branchHash := common.CopyBytes(hb.hashStack[len(hb.hashStack)-length2.Hash:])
- s = &shortNode{Key: common.CopyBytes(key), Val: hashNode{hash: branchHash}}
+ branchHash := libcommon.CopyBytes(hb.hashStack[len(hb.hashStack)-length2.Hash:])
+ s = &shortNode{Key: libcommon.CopyBytes(key), Val: hashNode{hash: branchHash}}
case *fullNode:
- s = &shortNode{Key: common.CopyBytes(key), Val: n}
+ s = &shortNode{Key: libcommon.CopyBytes(key), Val: n}
default:
return fmt.Errorf("wrong Val type for an extension: %T", nd)
}
@@ -486,7 +485,7 @@ func (hb *HashBuilder) branch(set uint16) error {
for digit := uint(0); digit < 16; digit++ {
if ((1 << digit) & set) != 0 {
if nodes[i] == nil {
- f.Children[digit] = hashNode{hash: common.CopyBytes(hashes[hashStackStride*i+1 : hashStackStride*(i+1)])}
+ f.Children[digit] = hashNode{hash: libcommon.CopyBytes(hashes[hashStackStride*i+1 : hashStackStride*(i+1)])}
} else {
f.Children[digit] = nodes[i]
}
@@ -606,7 +605,7 @@ func (hb *HashBuilder) code(code []byte) error {
if hb.trace {
fmt.Printf("CODE\n")
}
- codeCopy := common.CopyBytes(code)
+ codeCopy := libcommon.CopyBytes(code)
n := codeNode(codeCopy)
hb.nodeStack = append(hb.nodeStack, n)
hb.sha.Reset()
diff --git a/turbo/trie/intermediate_hashes_test.go b/turbo/trie/intermediate_hashes_test.go
index 4128ca453ac..531c6083e1a 100644
--- a/turbo/trie/intermediate_hashes_test.go
+++ b/turbo/trie/intermediate_hashes_test.go
@@ -2,11 +2,11 @@ package trie
import (
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"strconv"
"testing"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/stretchr/testify/assert"
)
diff --git a/turbo/trie/proof.go b/turbo/trie/proof.go
index ae0e5243701..d9dc7ffeb5b 100644
--- a/turbo/trie/proof.go
+++ b/turbo/trie/proof.go
@@ -7,7 +7,6 @@ import (
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon-lib/common/length"
- "github.com/ledgerwatch/erigon/common"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/rlp"
@@ -33,7 +32,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error)
case *shortNode:
if fromLevel == 0 {
if rlp, err := hasher.hashChildren(n, 0); err == nil {
- proof = append(proof, common.CopyBytes(rlp))
+ proof = append(proof, libcommon.CopyBytes(rlp))
} else {
return nil, err
}
@@ -55,7 +54,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error)
case *duoNode:
if fromLevel == 0 {
if rlp, err := hasher.hashChildren(n, 0); err == nil {
- proof = append(proof, common.CopyBytes(rlp))
+ proof = append(proof, libcommon.CopyBytes(rlp))
} else {
return nil, err
}
@@ -77,7 +76,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error)
case *fullNode:
if fromLevel == 0 {
if rlp, err := hasher.hashChildren(n, 0); err == nil {
- proof = append(proof, common.CopyBytes(rlp))
+ proof = append(proof, libcommon.CopyBytes(rlp))
} else {
return nil, err
}
diff --git a/turbo/trie/retain_list.go b/turbo/trie/retain_list.go
index 5bad665aa23..9f768fb2349 100644
--- a/turbo/trie/retain_list.go
+++ b/turbo/trie/retain_list.go
@@ -20,14 +20,13 @@ import (
"bytes"
"encoding/binary"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"math/big"
"sort"
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon-lib/common/length"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
@@ -64,7 +63,7 @@ type ProofRetainer struct {
// set onto the FlatDBTrieLoader via SetProofRetainer before performing its Load
// operation in order to appropriately collect the proof elements.
func NewProofRetainer(addr libcommon.Address, a *accounts.Account, storageKeys []libcommon.Hash, rl *RetainList) (*ProofRetainer, error) {
- addrHash, err := common.HashData(addr[:])
+ addrHash, err := libcommon.HashData(addr[:])
if err != nil {
return nil, err
}
@@ -72,7 +71,7 @@ func NewProofRetainer(addr libcommon.Address, a *accounts.Account, storageKeys [
storageHexKeys := make([][]byte, len(storageKeys))
for i, sk := range storageKeys {
- storageHash, err := common.HashData(sk[:])
+ storageHash, err := libcommon.HashData(sk[:])
if err != nil {
return nil, err
}
diff --git a/turbo/trie/retain_list_test.go b/turbo/trie/retain_list_test.go
index 9c3196bf652..a9488efb54e 100644
--- a/turbo/trie/retain_list_test.go
+++ b/turbo/trie/retain_list_test.go
@@ -1,11 +1,11 @@
package trie
import (
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
"testing"
"github.com/holiman/uint256"
libcommon "github.com/ledgerwatch/erigon-lib/common"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/stretchr/testify/require"
)
diff --git a/turbo/trie/structural_branch_test.go b/turbo/trie/structural_branch_test.go
index 39f8f612655..aebde55d551 100644
--- a/turbo/trie/structural_branch_test.go
+++ b/turbo/trie/structural_branch_test.go
@@ -42,7 +42,7 @@ func TestIHCursor(t *testing.T) {
k := common.FromHex(ks)
integrity.AssertSubset(k, hasTree, hasState)
integrity.AssertSubset(k, hasHash, hasState)
- _ = tx.Put(kv.TrieOfAccounts, k, common.CopyBytes(trie.MarshalTrieNodeTyped(hasState, hasTree, hasHash, hashes, newV)))
+ _ = tx.Put(kv.TrieOfAccounts, k, libcommon.CopyBytes(trie.MarshalTrieNodeTyped(hasState, hasTree, hasHash, hashes, newV)))
}
put("00", 0b0000000000000010, 0b0000000000000000, 0b0000000000000010, []libcommon.Hash{hash})
diff --git a/turbo/trie/trie_root.go b/turbo/trie/trie_root.go
index 757bf5807ff..6154815171f 100644
--- a/turbo/trie/trie_root.go
+++ b/turbo/trie/trie_root.go
@@ -5,6 +5,8 @@ import (
"encoding/binary"
"encoding/hex"
"fmt"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+ dbutils2 "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/bits"
"time"
@@ -14,9 +16,6 @@ import (
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/log/v3"
- "github.com/ledgerwatch/erigon/common"
- "github.com/ledgerwatch/erigon/common/dbutils"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/turbo/rlphacks"
)
@@ -780,7 +779,7 @@ func (c *AccTrieCursor) Next() (k, v []byte, hasTree bool, err error) {
}
if c.k[c.lvl] == nil {
c.cur = nil
- c.SkipState = c.SkipState && !dbutils.NextNibblesSubtree(c.prev, &c.next)
+ c.SkipState = c.SkipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next)
return nil, nil, false, nil
}
ok, err := c._consume()
@@ -881,7 +880,7 @@ func (c *AccTrieCursor) _nextSiblingOfParentInMem() bool {
}
func (c *AccTrieCursor) _nextSiblingInDB() error {
- ok := dbutils.NextNibblesSubtree(c.k[c.lvl], &c.next)
+ ok := dbutils2.NextNibblesSubtree(c.k[c.lvl], &c.next)
if !ok {
c.k[c.lvl] = nil
return nil
@@ -978,7 +977,7 @@ func (c *AccTrieCursor) _next() (k, v []byte, hasTree bool, err error) {
for {
if c.k[c.lvl] == nil {
c.cur = nil
- c.SkipState = c.SkipState && !dbutils.NextNibblesSubtree(c.prev, &c.next)
+ c.SkipState = c.SkipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next)
return nil, nil, false, nil
}
@@ -1101,7 +1100,7 @@ func (c *StorageTrieCursor) Next() (k, v []byte, hasTree bool, err error) {
return []byte{}, nil, false, err
}
if c.k[c.lvl] == nil {
- c.skipState = c.skipState && !dbutils.NextNibblesSubtree(c.prev, &c.next)
+ c.skipState = c.skipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next)
c.cur = nil
return nil, nil, false, nil
}
@@ -1257,7 +1256,7 @@ func (c *StorageTrieCursor) _nextSiblingOfParentInMem() bool {
}
func (c *StorageTrieCursor) _nextSiblingInDB() error {
- ok := dbutils.NextNibblesSubtree(c.k[c.lvl], &c.next)
+ ok := dbutils2.NextNibblesSubtree(c.k[c.lvl], &c.next)
if !ok {
c.k[c.lvl] = nil
return nil
@@ -1287,7 +1286,7 @@ func (c *StorageTrieCursor) _next() (k, v []byte, hasTree bool, err error) {
for {
if c.k[c.lvl] == nil {
c.cur = nil
- c.skipState = c.skipState && !dbutils.NextNibblesSubtree(c.prev, &c.next)
+ c.skipState = c.skipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next)
return nil, nil, false, nil
}
@@ -1374,7 +1373,7 @@ func isDenseSequence(prev []byte, next []byte) bool {
if len(prev) == 0 && len(next) == 0 {
return false
}
- ok := dbutils.NextNibblesSubtree(prev, &isSequenceBuf)
+ ok := dbutils2.NextNibblesSubtree(prev, &isSequenceBuf)
if len(prev) > 0 && !ok {
return true
}
@@ -1396,7 +1395,7 @@ var isSequenceBuf = make([]byte, 256)
func firstNotCoveredPrefix(prev, prefix, buf []byte) ([]byte, bool) {
if len(prev) > 0 {
- if !dbutils.NextNibblesSubtree(prev, &buf) {
+ if !dbutils2.NextNibblesSubtree(prev, &buf) {
return buf, true
}
} else {
@@ -1456,12 +1455,12 @@ func keyIsBefore(k1, k2 []byte) bool {
func UnmarshalTrieNodeTyped(v []byte) (hasState, hasTree, hasHash uint16, hashes []libcommon.Hash, rootHash libcommon.Hash) {
hasState, hasTree, hasHash, v = binary.BigEndian.Uint16(v), binary.BigEndian.Uint16(v[2:]), binary.BigEndian.Uint16(v[4:]), v[6:]
if bits.OnesCount16(hasHash)+1 == len(v)/length2.Hash {
- rootHash.SetBytes(common.CopyBytes(v[:32]))
+ rootHash.SetBytes(libcommon.CopyBytes(v[:32]))
v = v[32:]
}
hashes = make([]libcommon.Hash, len(v)/length2.Hash)
for i := 0; i < len(hashes); i++ {
- hashes[i].SetBytes(common.CopyBytes(v[i*length2.Hash : (i+1)*length2.Hash]))
+ hashes[i].SetBytes(libcommon.CopyBytes(v[i*length2.Hash : (i+1)*length2.Hash]))
}
return
}
@@ -1488,7 +1487,7 @@ func MarshalTrieNodeTyped(hasState, hasTree, hasHash uint16, h []libcommon.Hash,
}
func StorageKey(addressHash []byte, incarnation uint64, prefix []byte) []byte {
- return dbutils.GenerateCompositeStoragePrefix(addressHash, incarnation, prefix)
+ return dbutils2.GenerateCompositeStoragePrefix(addressHash, incarnation, prefix)
}
func MarshalTrieNode(hasState, hasTree, hasHash uint16, hashes, rootHash []byte, buf []byte) []byte {
@@ -1510,11 +1509,11 @@ func CastTrieNodeValue(hashes, rootHash []byte) []libcommon.Hash {
to := make([]libcommon.Hash, len(hashes)/length2.Hash+len(rootHash)/length2.Hash)
i := 0
if len(rootHash) > 0 {
- to[0].SetBytes(common.CopyBytes(rootHash))
+ to[0].SetBytes(libcommon.CopyBytes(rootHash))
i++
}
for j := 0; j < len(hashes)/length2.Hash; j++ {
- to[i].SetBytes(common.CopyBytes(hashes[j*length2.Hash : (j+1)*length2.Hash]))
+ to[i].SetBytes(libcommon.CopyBytes(hashes[j*length2.Hash : (j+1)*length2.Hash]))
i++
}
return to
diff --git a/turbo/trie/trie_root_test.go b/turbo/trie/trie_root_test.go
index 9db6e3394aa..efec782137a 100644
--- a/turbo/trie/trie_root_test.go
+++ b/turbo/trie/trie_root_test.go
@@ -4,6 +4,8 @@ import (
"bytes"
"context"
"encoding/binary"
+ "github.com/ledgerwatch/erigon-lib/common/hexutil"
+ "github.com/ledgerwatch/erigon-lib/kv/dbutils"
"math/big"
"testing"
"time"
@@ -13,8 +15,6 @@ import (
"github.com/ledgerwatch/erigon-lib/common/hexutility"
"github.com/ledgerwatch/erigon-lib/kv"
"github.com/ledgerwatch/erigon-lib/kv/memdb"
- "github.com/ledgerwatch/erigon/common/dbutils"
- "github.com/ledgerwatch/erigon/common/hexutil"
"github.com/ledgerwatch/erigon/core/types/accounts"
"github.com/ledgerwatch/erigon/crypto"
"github.com/ledgerwatch/erigon/eth/stagedsync"
diff --git a/turbo/trie/trie_test.go b/turbo/trie/trie_test.go
index e6e88496854..1e0f59a298b 100644
--- a/turbo/trie/trie_test.go
+++ b/turbo/trie/trie_test.go
@@ -76,31 +76,31 @@ func TestLargeValue(t *testing.T) {
// TestRandomCases tests som cases that were found via random fuzzing
func TestRandomCases(t *testing.T) {
var rt = []randTestStep{
- {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 0
- {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 1
- {op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000002")}, // step 2
- {op: 2, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("")}, // step 3
- {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 4
- {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 5
- {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 6
- {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 7
- {op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000008")}, // step 8
- {op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000009")}, // step 9
- {op: 2, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("")}, // step 10
- {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 11
- {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 12
- {op: 0, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("000000000000000d")}, // step 13
- {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 14
- {op: 1, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("")}, // step 15
- {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 16
- {op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000011")}, // step 17
- {op: 5, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 18
- {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 19
+ {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 0
+ {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 1
+ {op: 0, key: libcommon.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: libcommon.Hex2Bytes("0000000000000002")}, // step 2
+ {op: 2, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("")}, // step 3
+ {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 4
+ {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 5
+ {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 6
+ {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 7
+ {op: 0, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("0000000000000008")}, // step 8
+ {op: 0, key: libcommon.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: libcommon.Hex2Bytes("0000000000000009")}, // step 9
+ {op: 2, key: libcommon.Hex2Bytes("fd"), value: libcommon.Hex2Bytes("")}, // step 10
+ {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 11
+ {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 12
+ {op: 0, key: libcommon.Hex2Bytes("fd"), value: libcommon.Hex2Bytes("000000000000000d")}, // step 13
+ {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 14
+ {op: 1, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("")}, // step 15
+ {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 16
+ {op: 0, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("0000000000000011")}, // step 17
+ {op: 5, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 18
+ {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 19
// FIXME: fix these testcases for Erigon
//{op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000014")}, // step 20
//{op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000015")}, // step 21
//{op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000016")}, // step 22
- {op: 5, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 23
+ {op: 5, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 23
//{op: 1, key: common.Hex2Bytes("980c393656413a15c8da01978ed9f89feb80b502f58f2d640e3a2f5f7a99a7018f1b573befd92053ac6f78fca4a87268"), value: common.Hex2Bytes("")}, // step 24
//{op: 1, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("")}, // step 25
}
diff --git a/turbo/trie/trie_transform.go b/turbo/trie/trie_transform.go
index 6fba471cca3..bf2b0dcb35b 100644
--- a/turbo/trie/trie_transform.go
+++ b/turbo/trie/trie_transform.go
@@ -1,7 +1,7 @@
package trie
import (
- "github.com/ledgerwatch/erigon/common"
+ "github.com/ledgerwatch/erigon-lib/common"
"github.com/ledgerwatch/erigon/core/types/accounts"
)
diff --git a/wmake.ps1 b/wmake.ps1
index 5f8b42d6c65..ddb01d1e631 100644
--- a/wmake.ps1
+++ b/wmake.ps1
@@ -405,7 +405,7 @@ if (!Test-Path -Path [string](Join-Path $MyContext.Directory "\.git") -PathType
if(!(Test-Git-Installed)) { exit 1 }
## Test GO language is installed AND min version
-if(!(Test-GO-Installed "1.19")) { exit 1 }
+if(!(Test-GO-Installed "1.20")) { exit 1 }
# Build erigon binaries
Set-Variable -Name "Erigon" -Value ([hashtable]::Synchronized(@{})) -Scope Script